Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/04/2005, 11:20
Avatar de CarlosMtnez
CarlosMtnez
 
Fecha de Ingreso: agosto-2003
Mensajes: 68
Antigüedad: 21 años, 3 meses
Puntos: 1
Exclamación Array de Checkbox + JAVA

Hola foreros:

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:
<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">
Con la siguiente función:
Código:
function 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)
  }
}
Sólo el primero de los checks seleccionará todos de manera simultánea

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.