Averiguar qué casillas de verificación se han seleccionado en un formulario en php

votos
1

Tengo un formulario con varias casillas de verificación. Cuando lo envío a otra página php, me pregunto: ¿cómo puedo saber cuáles están marcados sin llamar a isset en cada nombre de casilla de verificación? (si hay una manera). Si le doy a cada una de las casillas de verificación el mismo nombre, solo se devuelve la última casilla de verificación seleccionada.

Gracias,
Michael

Publicado el 16/08/2009 a las 23:12
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
5

Una peculiaridad de PHP requiere que los controles de formulario terminen su nombre con los caracteres []para que se reconozca más de uno de ellos.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
   <title>Demo</title>

<form action="cb.php">
<div>
    <input type="checkbox" name="animals[]" value="dog" id="dog"> 
    <label for="dog">dog</label>
</div>
<div>
    <input type="checkbox" name="animals[]" value="cat" id="cat"> 
    <label for="cat">cat</label>
</div>
<div>
    <input type="checkbox" name="animals[]" value="rabbit" id="rabbit"> 
    <label for="rabbit">rabbit</label>
</div>
<div>
    <input type="checkbox" name="animals[]" value="hampster" id="hampster"> 
    <label for="hampster">hampster</label>
</div>
<div><input type="submit"></div>
</form>
<?php
if ($_GET['animals']) {
?>
<ul>
<?php
foreach ($_GET['animals'] as $animal) {
?>
<li><?php print htmlspecialchars($animal); ?></li>
<?php
}
?>
</ul>
<?php
}
?>
Respondida el 16/08/2009 a las 23:15
fuente por usuario

votos
1

Utilice un nombre de matriz para todas las casillas de verificación en el mismo grupo, por ejemplo, name = "mycheckboxes []". De esta forma, obtendrás una matriz que contiene la lista de casillas de verificación seleccionadas en tu código php.

Respondida el 16/08/2009 a las 23:15
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more