Ver Mensaje Individual
  #2  
Antiguo 26-07-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si nombras "borrar[]" a tus checkbox, no sabrás realmente cuáles se seleccionaron. Vamos a suponer que tienes este formulario

Código:
<form method='post' action='checkbox.php'>
A <input type='checkbox' name='borrar[]'>
B <input type='checkbox' name='borrar[]'>
C <input type='checkbox' name='borrar[]'>
<input type='submit'>
</form>
Si seleccionas una sola casilla, no importa cual, siempre recibirás el mismo arreglo:

Código:
[borrar] => Array
		(
				[0] => on
		)
Esto es así, porque PHP asigna los índices en automático. Si seleccionases las casillas B y C, recibirás esto:

Código:
[borrar] => Array
		(
				[0] => on
				[1] => on
		)
en lugar de lo que esperarías:

Código:
[borrar] => Array
		(
				[1] => on
				[2] => on
		)
Entonces, es mejor asignar tú mismo los índices en el formulario en sí:

Código:
<form method='post' action='checkbox.php'>
A <input type='checkbox' name='borrar[0]'>
B <input type='checkbox' name='borrar[1]'>
C <input type='checkbox' name='borrar[2]'>
<input type='submit'>
</form>
Así, recibirás los índices correctos. Para ver cuáles se seleccionaron, bastaría ver si el índice correspondiente está presente en el arreglo:

Código PHP:
if (array_key_exists($indice$_POST['borrar'])
{
  ...

Los índices de tu arreglo borrar[] pueden ser consecutivos como en el ejemplo, o bien, ya dependiendo de tu caso particular, alguna otra cosa. Por ejemplo, si las casillas corresponden a elementos de una base de datos, el índice podría ser el ID de cada registro.

// Saludos
Responder Con Cita