Foros del Web » Programando para Internet » Javascript »

Marcar todos los array de checkbox

Estas en el tema de Marcar todos los array de checkbox en el foro de Javascript en Foros del Web. Buenas tardes a todos. Espero que mepuedan ayudar con este problema. Lo que pasa es que estoy generando unos checkbox que provienen de una consulta ...
  #1 (permalink)  
Antiguo 20/09/2008, 08:03
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 8 meses
Puntos: 1
Marcar todos los array de checkbox

Buenas tardes a todos.

Espero que mepuedan ayudar con este problema.

Lo que pasa es que estoy generando unos checkbox que provienen de una consulta a una tabla y son de la siguiente manera

Código HTML:
<input type="checkbox" name="chk_col[]" id="chk_col[]" value="<?=$var_id_familia.'--xx--'.$row_art['id']; ?>" /> 
Es decir todo esta en el array : chk_col[]

Y tengo un dos input que me dice marcar y desmarcar y son los siguiente

Código HTML:
<INPUT TYPE="button" NAME="marcar" VALUE="Marcar todos"       onClick="modificar_boxes(true,'.$cantidad.')" />
<INPUT TYPE="button" NAME="desmarcar" VALUE="Desmarcar todos" onClick="modificar_boxes(false,'.$cantidad.')" /> 
y la funcion en javascript es :

Código HTML:
function modificar_boxes(chequear,cantidad)
{
     
    for (i=0; i < cantidad ; i++ )
    {
   
        if (chequear)
        {  
             alert("True:"+i);
document.getElementById('chk_col[]').checked=true;
            
        }
        else
        {
           alert("False :"+i); 
          document.getElementById('chk_col[]').checked=false;
        }
    } 
}
Lo que pasa es que solo me marca el primer elemento del array, ya que si por ejemplo la consulta me arroja 30 checkbox solo me marca el primero, pero puse un alert para ver si entra, y veo que si entra y lo recorre todo el array pero no los marca los 29 restantes por ejemplo..

Donde puede estar el error

Gracias y saludos a todos.
  #2 (permalink)  
Antiguo 20/09/2008, 08:47
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años
Puntos: 834
Respuesta: Marcar todos los array de checkbox

El principal error es que en una misma página no puede haber elementos con un mismo id (y por otra parte, tampoco los necesitás). Fijate si esto te sirve:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>test</title>
<
script>
function 
modificar_boxes(v,n){
    var 
inp=document.getElementsByTagName('input');
    for(var 
i=0l=inp.length;i<l;i++){
        if(
inp[i].type=='checkbox' && inp[i].name.split('[]')[0]==n)
            
inp[i].checked=v;
    }
}
</script>
</head>

<body>
<form action="" method="get">
<input type="checkbox" name="chk_col[]"  value="loquesea" />
<input type="checkbox" name="chk_col[]"  value="loquesea" />
<input type="checkbox" name="chk_col[]"  value="loquesea" />
<input type="checkbox" name="chk_col[]"  value="loquesea" />
<input type="checkbox" name="chk_col[]"  value="loquesea" />
<input type="checkbox" name="chk_col[]"  value="loquesea" />
<input type="button" name="marcar" value="Marcar todos" onclick="modificar_boxes(1,'chk_col')" />
<input type="button" name="desmarcar" value="Desmarcar todos" onclick="modificar_boxes(0,'chk_col')" />
</form>
</body>
</html> 
  #3 (permalink)  
Antiguo 20/09/2008, 09:31
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: Marcar todos los array de checkbox

Ok. Amigo muchas gracias, eso entonces era el id del checbox que no tenia que repetirse.

Gracias y saludos a todos
  #4 (permalink)  
Antiguo 20/09/2008, 10:30
Avatar de JuanKa  
Fecha de Ingreso: septiembre-2004
Mensajes: 468
Antigüedad: 19 años, 8 meses
Puntos: 1
Respuesta: Marcar todos los array de checkbox

Se me olvidaba.

Y como puedo validar para que al menos seleccione un check box.


Gracias y saludos
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 11:29.