Foros del Web » Programando para Internet » Javascript »

Checkboxes dinámicos y php

Estas en el tema de Checkboxes dinámicos y php en el foro de Javascript en Foros del Web. Tengo "n" checkboxes y al lado de cada uno de ellos un boton, algo así : Código PHP: ...                 while($dep=pg_fetch_array($result))                 {                 ?>                 <tr>                                   <td><div align="center"><span class="texto_small">                       <input name="check_dep[]" type=checkbox class="clsCheck box01" value=" ...
  #1 (permalink)  
Antiguo 14/10/2005, 18:16
Avatar de gabyweb  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 364
Antigüedad: 22 años, 10 meses
Puntos: 0
Checkboxes dinámicos y php

Tengo "n" checkboxes y al lado de cada uno de ellos un boton, algo así :

Código PHP:
...
                while($dep=pg_fetch_array($result))
                {
                ?>
                <tr>                  
                <td><div align="center"><span class="texto_small">
                      <input name="check_dep[]" type=checkbox class="clsCheck box01" value="<? echo $dep["id_organizacion"]?>" onclick="alert(document.forms['formdesp']['btn_accion'].value);">
                    <? echo $dep["cod_organizacion"]; ?></span>
                     </div></td>
                      <td width="56%" height="20" align="left" class="texto_small">&nbsp;<? echo $dep["descripcion_organizacion"]; ?></td>
                    <td valign="top">
                        <input name="btn_rpta" type="button" value="R" class="boton_mini_small" disabled onClick="Respuestas(<? echo $dep["id_organizacion"]?>,'<?for ($x=0;$x<count($arr2);$x++) echo $arr2[$x]; ?>')">
                        <input type=text name="rpta<?echo $dep["id_organizacion"]?>" size="10" class="texto" readonly>
                    </td>
                    <td valign="top">
                        <input name="btn_accion" id="accion" type="button" value="A" class="boton_mini_small" onClick="Acciones(<? echo $dep["id_organizacion"]?>)">
                        <input type=text name="acc<?echo $dep["id_organizacion"]?>" size="10" class="texto" readonly>
                    </td>
                </tr> 
                <??>
Lo que necesito es si yo marco un checkbox se debe habilitar/deshabilitar el botón que le corresponde.

El ejemplo que he puesto lo he visto funcionar pero no para checkboxes dinámicos.

Qué es lo que faltaría? Gracias
__________________
Gaby :adios:
  #2 (permalink)  
Antiguo 15/10/2005, 03:22
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 9 meses
Puntos: 772
Hola gabyweb

Si en lugar de poner el código PHP, pones el código fuente que genera, será más fácil para los que sabemos (algo) JavaScript poder ayudarte.

Saludos,
  #3 (permalink)  
Antiguo 15/10/2005, 04:36
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Hola compatriota! y JavierB!
Bueno, hice un ejemplito basandome en tu codigo.
Código HTML:
<html>
<head>
<script language="javascript">
function setEnabled (idx, chk)
{
	document.forms['formdesp']['btn_accion'][idx-1].disabled = !chk;
}
</script>
</head>
<body>
<form name="formdesp">
  <table border="1">
	<tr> <!--id_organizacion=1-->
	<td><div align="center"><span class="texto_small"> 
		  <input name="check_dep[]" type=checkbox class="clsCheck box01" value="1" onclick="setEnabled(1, this.checked)"> 
		cod_organizacion</span> 
		 </div></td> 
		  <td width="56%" height="20" align="left" class="texto_small">&nbsp;descripcion_organizacion</td> 
		<td valign="top"> 
			<input name="btn_rpta" type="button" value="R" class="boton_mini_small" disabled onClick="Respuestas(1,'arr2')"> 
			<input type=text name="rpta1" size="10" class="texto" readonly> 
		</td> 
		<td valign="top"> 
			<input name="btn_accion" id="accion" type="button" value="A" class="boton_mini_small" onClick="Acciones(1)"> 
			<input type=text name="acc1" size="10" class="texto" readonly> 
		</td> 
	</tr> 
	<tr> <!--id_organizacion=2-->
	<td><div align="center"><span class="texto_small"> 
		  <input name="check_dep[]" type=checkbox class="clsCheck box01" value="2" onclick="setEnabled(2, this.checked)"> 
		cod_organizacion</span> 
		 </div></td> 
		  <td width="56%" height="20" align="left" class="texto_small">&nbsp;descripcion_organizacion</td> 
		<td valign="top"> 
			<input name="btn_rpta" type="button" value="R" class="boton_mini_small" disabled onClick="Respuestas(2,'arr2')"> 
			<input type=text name="rpta2" size="10" class="texto" readonly> 
		</td> 
		<td valign="top"> 
			<input name="btn_accion" id="accion" type="button" value="A" class="boton_mini_small" onClick="Acciones(2)"> 
			<input type=text name="acc2" size="10" class="texto" readonly> 
		</td> 
	</tr> 
  </table>
  </table>
</form>
</body>
</html> 
Creo que podria ayudarte, solo debes hacer tque tu PHP genere el indice adecuado para cada boton:
setEnabled(1, this.checked)
ya que, si no me equivoco, tus botones tienen el mismo nombre (btn_accion), por lo tanto, se forma un arreglo de botones.
Bueno, escribenos, si no te sale.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #4 (permalink)  
Antiguo 15/10/2005, 10:26
Avatar de gabyweb  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 364
Antigüedad: 22 años, 10 meses
Puntos: 0
Gracias Flaviovich funciona muy bien!!, ahora un pequeño detalle. Necesito que por lo menos un checkbox sea seleccionado y de éste "DEBE" tener ingresado algo en el input que está al lado del Botón "A"
__________________
Gaby :adios:
  #5 (permalink)  
Antiguo 15/10/2005, 11:14
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 19 años, 3 meses
Puntos: 39
Hola Gaby!
Prueba con esta funcion:
Código:
function chkForm()
{
	var n = 0;
	
	inputs = document.getElementsByTagName("input");

	for (i = 0; i < inputs.length; i++)
	{
		if (inputs[i].type == "checkbox" && inputs[i].checked)
		{
			if (document.forms['formdesp']['rpta1'][i].value != "")
			{
				n = 1;
			}
			else
			{
				alert("Debe ingresar un dato");
			}
			break;
		}
	}
	if (n == 0) alert("Debe seleccionar un checkbox");
	return (n == 1) ? true : false;
}
Ten en cuenta, que se evalua que haya algo en el input.
Y modifica esta linea:
Código HTML:
<form name="formdesp" onSubmit="return chkForm()"> 
Como siempre, fue un gusto ayudarte con lo poco que se.
suerte
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 03/11/2005, 20:47
Avatar de gabyweb  
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 364
Antigüedad: 22 años, 10 meses
Puntos: 0
Gracias, envié el código a tu mail porque hay algo que no está bien
__________________
Gaby :adios:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:33.