Esta cuestión tiene que ver tanto con java con php, pero la usabilidad se le dará en PHP, por eso he decidido publicar aquí el post. Buscando no encontré información para solucionar el problema.
La cuestión es que tengo un formulario con una matriz de checkbox del estilo
Check[] para recepcionar la matriz de checks múltiples activados en PHP, ahora bien, necesito que al pulsar un Check box de la lista (que posee el evento onClick) se seleccionen todos los demas (todos se llaman igual), uso una función llamada ChequeaTodo(objeto).
Bien, para poder acceder desde java a todo el array de checkbox, es decir, check[1], check[2] ... etc es necesario pasarle el objeto a la función de la forma ChequeaTodo(formulario.check) (sin las []) y no de la forma ChequeaTodo(this) ya que esta última únicamente le pasa el check actual y no la matriz de checks (aunque todos se llamen igual). Mi problema es que necesito recibir en la función la matriz de checks para poder acceder a sus índices y con un bucle activarlos.
Un ejemplo con algo de código:
Código:
Con la siguiente función:<INPUT name"pepito[]" type="checkbox" value="1" onClick="ChequeaTodo(this)"> <INPUT name"pepito[]" type="checkbox" value="2"> <INPUT name"pepito[]" type="checkbox" value="3"> <INPUT name"pepito[]" type="checkbox" value="4"> <INPUT name"pepito[]" type="checkbox" value="5">
Código:
Sólo el primero de los checks seleccionará todos de manera simultáneafunction ChequeaTodo(objeto) { var longitud = campo.length; for (i=1; i < longitud; i++) { campo[i].checked = campo[0].checked; //Lo hago de esta manera para poner el resto de checks al valor del primero (Activar/desactivar todos) } }
Pasandole el parámetro con un this desde el Check no funciona, ya que no le envía el objeto check con el array.
Si la llamada se realiza de estas otras formas tampoco funciona
onClick="ChequeaTodo(formulario.pepito)"
onClick="ChequeaTodo(formulario.pepito[])"
Eso sí, si los nombres de los checks no llevaran los malditos [] funcionaría perfectamente con la llamada onClick="ChequeaTodo(formulario.pepito)"
¿Alguien se ha encontrado en este problema o conoce alguna solución?
Una ayudita
Saludetes.