no puedo leer un vector de checkbox!

danimori
06 de Junio del 2006
Cuando utilizo una lista de checkbox, todos con el mismo nombre, en un formulario, en el .php de destino la variable de ese nombre sólamente contiene el valor de la última casilla seleccionada. He probado enviando el formulario con los dos métodos, get y post, y me da lo mismo. ¿Alguien sabe cómo solucionarlo? Si no, imagino que lo que tendré que hacer es darle un nombre a cada checkbox y ya está, pero me resulta mucho más incomodo. Muchas gracias de antemano.

Norberto
06 de Junio del 2006
La verdad lo último que digistes es cierto, cada checkbox debe tener un nombre propio pero eso no es problema. Para automatizarlo mételo en un for y listo y en el .php léelo con otro for. un ejemplo. a ver si me entiendes.


<?
for ($i=1;$i<5;$i++)
echo"
<input type='checkbox' name='caja$i' value='valor''> valor$i
";
?>
en este caso yo pongo valor, para que no me de por default On y así controlar un valor más específico, esto es útil cuando usas bases de datos y tienes que asignarles valores, con esto obtienes 5 checkbox, con nombres: caja1,caja2...caja5.

en el siguiente escript de php. le sacas los valores de la siguiente manera:


como los checkbox se llaman caja, los ingresamos a un arreglo.
<?
for ($i=1;$i<5;$i++)
$cheques[$i]="caja".$i; //obtenemos el nombre de las variables

//ahora $cheques tiene los nombres de las variables, y para obetenr su valor: le anteponemos otro $
// quedaría así:

for ($i=1;$i<5;$i++)
$valores[$i]=$$cheques[$i];// y ya obtenemos los valores de los checkbox
//ahora están en la variable valores para manipularlos como quieras.
?>

Esto se puede resumir como tu quieras, lo hice así para ser un poco más explícito.

Espero me hayas entendido.


Norberto
06 de Junio del 2006
En la respuesta anterior, escribí $i=1, con ello solo obtienes 4 checkbox, lo correcto era $i=0, para obtener los 5, esto aplica a todos los 'for'