Foros del Web » Programando para Internet » Javascript »

marcar checkbox por grupos

Estas en el tema de marcar checkbox por grupos en el foro de Javascript en Foros del Web. Hola: Tengo checkbox generados dinámicamnte, después de una consulta a la bd. <input type='checkbox' id='$id' name='seleccion[$i]' value='modifica' > llamo a la función: <span style='cursor:pointer' onclick=\"marcatodos('$id');\">Selecionar ...
  #1 (permalink)  
Antiguo 15/07/2012, 13:14
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 14 años, 9 meses
Puntos: 0
marcar checkbox por grupos

Hola:
Tengo checkbox generados dinámicamnte, después de una consulta a la bd.

<input type='checkbox' id='$id' name='seleccion[$i]' value='modifica' >

llamo a la función:

<span style='cursor:pointer' onclick=\"marcatodos('$id');\">Selecionar Todos</span>

Y con esta función lo hace perfectamente, marcando solo los que tengan la id correspondiente:

Código HTML:
var tags_inpt = new Array();
function marcatodos(id) {
tags_inpt=document.getElementsByTagName('input');
var i;
for (i=0; i<tags_inpt.length; i++) {
if ((tags_inpt[i].type=='checkbox')&&(tags_inpt[i].id.match(id))){
tags_inpt[i].checked = true;
}
}
}
El problema:
Que al mandarlo a la página php donde recojo todos los parametros con
Código PHP:
switch($opcion){    case 'modifica'
SIEMPRE ME MANDA UNO MAS, es de cir que si selecciono todos, me manda todos + 1.

Podeís ayudarme?
  #2 (permalink)  
Antiguo 15/07/2012, 13:53
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 15 años, 5 meses
Puntos: 1567
Respuesta: marcar checkbox por grupos

@eurodoblon
Eso te funciona?
no veo tu html, pero, partiendo de la base de que los id deben ser únicos, y siendo que tu función pasa tan solo un id, solo un input debería ser marcado, y supongo que tu "marcar todos" refiere a multiples checkboxes.
es decir, esto
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6.  
  7. <script type="text/javascript">
  8. //<![CDATA[
  9. var tags_inpt = new Array();
  10. function marcatodos(id) {
  11. tags_inpt=document.getElementsByTagName('input');
  12. var i;
  13. for (i=0; i<tags_inpt.length; i++) {
  14. if ((tags_inpt[i].type=='checkbox')&&(tags_inpt[i].id.match(id))){
  15. tags_inpt[i].checked = true;
  16. }
  17. }
  18. }
  19.  
  20. //]]>
  21. </head>
  22. <span style='cursor:pointer' onclick="marcatodos('dos');">Selecionar Todos</span>
  23. <input type="checkbox" id="uno" />
  24. <input type="checkbox" id="dos" />
  25. <input type="checkbox" id="tres" />
  26. </form>
  27. </body>
  28. </html>

No funciona
suponiendo que utilices el name, es otro cantar.
como es la cosa?

Y te recomiendo que no utilices id como identificador de los parámetros de la variable, porque "id" tiene su propio significado dentro de la sintáxis de javascript
Saludos
PD: quizás este post te sirva de algo
http://www.forosdelweb.com/f13/conta...ctivos-988604/
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 15/07/2012, 14:17
 
Fecha de Ingreso: enero-2008
Mensajes: 303
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: marcar checkbox por grupos

He simplificado la función, marca bien los que debe marcar, pero siempre manda un array más.

Código:
function marcatodos(ide) {
tags_inpt=document.getElementsByTagName('input');


for (i=0; i<tags_inpt.length; i++) {
if ((tags_inpt[i].type=='checkbox')&&(tags_inpt[i].id==ide)){
tags_inpt[i].checked = 1;
}
}
}
En este caso seleccioné 2 y recibí esto:

Array ( [2] => modifica [3] => modifica [4] => modifica ) Array ( [2] => modifica [3] => modifica [4] => modifica ) Array ( [2] => modifica [3] => modifica [4] => modifica )
  #4 (permalink)  
Antiguo 15/07/2012, 14:54
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 15 años, 5 meses
Puntos: 1567
Respuesta: marcar checkbox por grupos

Si estás haciendo esto
<input type="checkbox" name="grupo" id="uno" />
<input type="checkbox" name="grupo" id="uno" />
<input type="checkbox" name="grupo" id="dos" />
<input type="checkbox" name="grupo" id="dos" />
<input type="checkbox" name="grupo" id="tres" />

aunque te funcione, NO es correcto, independientemente de lo que después quieras hacer desde el php

La respuesta a tu problema está en el link que dejé como referencia
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Etiquetas: checkbox, grupos, input, marcar, php
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 15:02.