Foros del Web » Programando para Internet » Javascript »

Checkbox "Padre"

Estas en el tema de Checkbox "Padre" en el foro de Javascript en Foros del Web. Checkbox Prinicipal Junto con saludar redacto mi consulta amigos, estoy aplicando un checkbos "padre" a unos checkbox dinamicos que creo de acuerdo al numero de ...
  #1 (permalink)  
Antiguo 21/08/2012, 15:35
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Checkbox "Padre"

Checkbox Prinicipal


Junto con saludar redacto mi consulta amigos, estoy aplicando un checkbos "padre" a unos checkbox dinamicos que creo de acuerdo al numero de registro en un tabla.
Me funciona que al habiltar checbox padre se marquen los checkbox "Hijo" y viceversa, tambien me funciona que cuando desmarco uno de los checkbox hijo se me descarque automaticamente el checkbox padre, el problema es cuando vuelvo a marcar el checkbox hijo y por lo tanto estando todos los checkbox hijos marcados tendria que marcarse el checkbox hijo.

Esto lo veen a diario en el correo de hotmail y sus checkbox de la bandeja de entrada.

Como tendria que hacerlo?el problema es la funcion "seleccionar_filtro"
Código HTML:
<html>
<head>
<script type="text/javascript">
function seleccionar(){ 
for (i=0;i<document.form3.elements.length;i++) 
if(document.form3.elements[i].type == "checkbox") 
if(document.form3.seleccionar1.checked == 1)
document.form3.elements[i].checked=1 
else if(document.form3.seleccionar1.checked == 0)
document.form3.elements[i].checked=0 
}
</script>
<script type="text/javascript">
function seleccionar_filtro(){
if(document.form3.elements[i].type == "checkbox")
if(document.form3.elements[i].checked == 0)
document.form3.seleccionar1.checked = 0

}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<p>
  <?php
include("conec.php");
$link=Conectarse();
$estado="des";
$Sql="select * from clientes where estado='$estado'";
$result=mysql_query($Sql,$link);
$num_registros=mysql_num_rows($result);
?>
</p>
<form id="form3" name="form3" method="post" action="">
  <p><a href="marcar_eliminar.php">Eliminar Marcados</a> <a href="marcar_habilitar.php">Habilitar Marcados</a></p>
  <table border="5" cellspacing="1" cellpadding="1">
    <tr>
      <td>&nbsp;RUT&nbsp;</td>
      <td>&nbsp;Nombre&nbsp;</td>
      <td>&nbsp;direccion&nbsp;</td>
      <td>&nbsp;Email&nbsp;</td>
      <td>Todos <input type="checkbox" id="seleccionar1" name="seleccionar1" onClick="javascript:seleccionar()"></td>
    </tr>
      <?php
   //nuevo
  while($row = mysql_fetch_array($result))
  {
  printf("<tr><td>&nbsp;%s&nbsp;</td>
<td>&nbsp;%s&nbsp;</td>
<td>&nbsp;%s&nbsp;</td>
<td>&nbsp;%s&nbsp;</td>
<td><input type='checkbox' name='checkbox' id='%s' onClick='seleccionar_filtro()'/></td>
</tr>",
$row["rut_cliente"],$row["nombre_cliente"],$row["direccion"],$row["email"],$row["rut_cliente"]);
}
mysql_free_result($result);
?>
</table>
</form>
</body>
</html> 
  #2 (permalink)  
Antiguo 21/08/2012, 15:46
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Checkbox "Padre"

No entendí muy bien

Cita:
cuando vuelvo a marcar el checkbox hijo y por lo tanto estando todos los checkbox hijos marcados tendria que marcarse el checkbox hijo
¿Te refieres al checkbox padre?

Si te refieres al padre, podrías recorrer todos los checkbox hijo, y si todos están marcados, marcar el padre, pudiendo distinguir los chekbox por id para saber si es hijo o padre.
  #3 (permalink)  
Antiguo 21/08/2012, 20:41
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Checkbox "Padre"

Cita:
Iniciado por ocp001a Ver Mensaje
No entendí muy bien



¿Te refieres al checkbox padre?

Si te refieres al padre, podrías recorrer todos los checkbox hijo, y si todos están marcados, marcar el padre, pudiendo distinguir los chekbox por id para saber si es hijo o padre.

si es correcta tu correccion, como los tendria que recorrer?gracias
  #4 (permalink)  
Antiguo 22/08/2012, 11:45
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años
Puntos: 528
Respuesta: Checkbox "Padre"

del mismo modo que lo haces, suponiendo que a los checkbox hijos les pones como id "hijo":
Código Javascript:
Ver original
  1. for (i=0;i<document.form3.elements.length;i++)
  2.    if(document.form3.elements[i].type == "checkbox")
  3.         if(document.form3.elements[i].id.indexOf('hijo')>-1)//si el id del checkbox contiene la palabra hijo
  4.               if(document.form3.elements[i].checked==false){//si no esta marcado
  5.                   document.getElementById('padre').checked=false;//desmarcamos el padre. Lo busco por id, tu puedes hacerlo de otra forma egun te convenga
  6.                   return false;
  7.               }
  8.  
  9. }//si llega a este punto es que no encontró ningún hijo desmarcado
  10.  document.getElementById('padre').checked=true;//y marcamos al padre
  #5 (permalink)  
Antiguo 22/08/2012, 16:42
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Checkbox "Padre"

Cita:
Iniciado por ocp001a Ver Mensaje
del mismo modo que lo haces, suponiendo que a los checkbox hijos les pones como id "hijo":
Código Javascript:
Ver original
  1. for (i=0;i<document.form3.elements.length;i++)
  2.    if(document.form3.elements[i].type == "checkbox")
  3.         if(document.form3.elements[i].id.indexOf('hijo')>-1)//si el id del checkbox contiene la palabra hijo
  4.               if(document.form3.elements[i].checked==false){//si no esta marcado
  5.                   document.getElementById('padre').checked=false;//desmarcamos el padre. Lo busco por id, tu puedes hacerlo de otra forma egun te convenga
  6.                   return false;
  7.               }
  8.  
  9. }//si llega a este punto es que no encontró ningún hijo desmarcado
  10.  document.getElementById('padre').checked=true;//y marcamos al padre
No, no me resulta :(
  #6 (permalink)  
Antiguo 22/08/2012, 17:10
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Checkbox "Padre"

Puedes hacerlo de la siguiente forma

Código HTML:
Ver original
  1. <input type="checkbox" id="root" onclick="allChecked(this);"/> Marcar Todos<br/><br/>
  2. <input type="checkbox" id="node1" name="node" onclick="simpleChecked(this);"/> Children 1<br/>
  3. <input type="checkbox" id="node2" name="node" onclick="simpleChecked(this);"/> Children 2<br/>
  4. <input type="checkbox" id="node3" name="node" onclick="simpleChecked(this);"/> Children 3<br/>
  5. <input type="checkbox" id="node4" name="node" onclick="simpleChecked(this);"/> Children 4<br/>
  6. <input type="checkbox" id="node5" name="node" onclick="simpleChecked(this);"/> Children 5<br/>
  7. <input type="checkbox" id="node6" name="node" onclick="simpleChecked(this);"/> Children 6<br/>
  8. <input type="checkbox" id="node7" name="node" onclick="simpleChecked(this);"/> Children 7<br/>
  9. <input type="checkbox" id="node8" name="node" onclick="simpleChecked(this);"/> Children 8<br/>
  10. <input type="checkbox" id="node9" name="node" onclick="simpleChecked(this);"/> Children 9<br/>
  11. <input type="checkbox" id="node10" name="node" onclick="simpleChecked(this);"/> Children 10<br/>

Código Javascript:
Ver original
  1. function allChecked(root){
  2.     var nodes = document.getElementsByName('node');
  3.     var checked = root.checked;
  4.     for(var x = 0; nodes[x]; x++)
  5.          nodes[x].checked = checked;
  6. }
  7. function simpleChecked(node){
  8.     var nodes = document.getElementsByName('node');
  9.     var total = nodes.length;
  10.     var checkeados = 0;
  11.     for(var x = 0; nodes[x]; x++)
  12.          if(nodes[x].checked)
  13.              checkeados++;
  14.     document.getElementById('root').checked = (checkeados == total);  
  15. }
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #7 (permalink)  
Antiguo 23/08/2012, 10:35
 
Fecha de Ingreso: mayo-2012
Mensajes: 13
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Checkbox "Padre"

Cita:
Iniciado por Dradi7 Ver Mensaje
Puedes hacerlo de la siguiente forma

Código HTML:
Ver original
  1. <input type="checkbox" id="root" onclick="allChecked(this);"/> Marcar Todos<br/><br/>
  2. <input type="checkbox" id="node1" name="node" onclick="simpleChecked(this);"/> Children 1<br/>
  3. <input type="checkbox" id="node2" name="node" onclick="simpleChecked(this);"/> Children 2<br/>
  4. <input type="checkbox" id="node3" name="node" onclick="simpleChecked(this);"/> Children 3<br/>
  5. <input type="checkbox" id="node4" name="node" onclick="simpleChecked(this);"/> Children 4<br/>
  6. <input type="checkbox" id="node5" name="node" onclick="simpleChecked(this);"/> Children 5<br/>
  7. <input type="checkbox" id="node6" name="node" onclick="simpleChecked(this);"/> Children 6<br/>
  8. <input type="checkbox" id="node7" name="node" onclick="simpleChecked(this);"/> Children 7<br/>
  9. <input type="checkbox" id="node8" name="node" onclick="simpleChecked(this);"/> Children 8<br/>
  10. <input type="checkbox" id="node9" name="node" onclick="simpleChecked(this);"/> Children 9<br/>
  11. <input type="checkbox" id="node10" name="node" onclick="simpleChecked(this);"/> Children 10<br/>

Código Javascript:
Ver original
  1. function allChecked(root){
  2.     var nodes = document.getElementsByName('node');
  3.     var checked = root.checked;
  4.     for(var x = 0; nodes[x]; x++)
  5.          nodes[x].checked = checked;
  6. }
  7. function simpleChecked(node){
  8.     var nodes = document.getElementsByName('node');
  9.     var total = nodes.length;
  10.     var checkeados = 0;
  11.     for(var x = 0; nodes[x]; x++)
  12.          if(nodes[x].checked)
  13.              checkeados++;
  14.     document.getElementById('root').checked = (checkeados == total);  
  15. }
No funciona tampoco, gracias
  #8 (permalink)  
Antiguo 23/08/2012, 12:08
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: Checkbox "Padre"

Entonces no entiendo que es lo que quieres realmente el codigo que te puse funciona correctamente chequeando tanto padre como hijo

Mira aqui el ejemplo

http://jsfiddle.net/tKbQ8/1/

Entonces si no es eso que es lo que quieres realmente
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones

Etiquetas: checkbox, funcion, html, input, php, select
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 21:10.