PDA

Ver la versión completa : Recibir checkboxs en PHP



hckr
18-02-2012, 21:03
Buenas!

Yo tengo una tablita. En mi tablita, la primera columna es de checkbox, para seleccionar varios registros de la tabla a la vez. Hasta ahí todo bien, usando javascript puedo seleccionarlos todos, de uno en uno...etc

El problema llega cuando quiero recibir esos datos en PHP, que no sé cómo hacer que php trabaje con los elementos que he seleccionado.

En resumen, que tengo una tabla de... usuarios, por ejemplo, y quiero que los usuarios seleccionados se... eliminen, por ejemplo :D Pero sólo los que he seleccionado.

Ah, se me olvidaba, los registros los estoy listando con mysql_fetch_array(). Debería de usar arrays?

Un saludo.

hckr
18-02-2012, 21:12
Dios, qué rápido soy :D:D

He encontrado una posible solución, que en el listado de los registros, en el value de cada checkbox ponga la ID de cada usuario, y de nombre le creo una array.

Con la funcion implode() creo una lista de todos los elementos del array.

Al procesar los datos, uso por ejemplo:



$lista=implode(',',$_POST['checkbox']);

mysql_query("DELETE FROM usuarios WHERE ID IN(".$item.")");


Si alguien tiene alguna otra opción más sencilla, que no se corte.

Un saludo.

hystd
21-02-2012, 19:37
Lo más trivial...



<form name="usuarios" action="eliminar.php" method="POST">
<input type="checkbox" name="user1" value="">
<input type="hidden" name="idUsuario1" value="134057">

<input type="checkbox" name="user2" value="">
<input type="hidden" name="idUsuario2" value="168967">

<input type="checkbox" name="user3" value="">
<input type="hidden" name="idUsuario3" value="147526">

etc...

</form>


tu script php... (eliminar.php):



//$numUsers = numero Usuarios;

for ($i = 1; $i<=$numUsers; $i++){
if (isset($_POST["user".$i]) && (isset($_POST["idUsuario".$i])){
if ($_POST["user".$i] == 'on'){
if (existeUsuario($_POST["idUsuario".$i])){
eliminarUsuarioPorSuId($_POST["idUsuario".$i]);
}
}
}
}


Cuidadín con la seguridad y con las cosas inesperadas.

hckr
22-02-2012, 18:12
Gracias, a ver cómo me va y te cuento.