Una de las formas en las que se puede construir un formulario HTML es usando arrays para los campos input. Por ejemplo, se puede tener un formulario con una pregunta y las respuestas en varios input tipo checkbox. El uso de arrays nos dará la posibilidad de procesar el formulario con php usando una sola variable array para las múltiples respuestas.

El formulario t2q3h


Construyamos como ejemplo un formulario para recoger las respuestas a la pregunta ¿Como nos has conocido?. Las posibles respuestas van a ser Google, una web, anuncio en prensa y anuncio en tv. Cada respuesta será un input tipo checkbox. En este caso tiene sentido agrupar todas las respuestas en un array pues son los distintos valores de una misma opción.
<form action="demoform.php" method="get">

    <input type="checkbox" name="como[]" id="como1" value="Web">
    <label for="como1">Una web</label>

    <input type="checkbox" name="como[]" id="como2" value="Google">
    <label for="como2">Google</label>

    <input type="checkbox" name="como[]" id="como3" value="Anuncio en prensa">
    <label for="como3">Anuncio en prensa</label>

    <input type="checkbox" name="como[]" id="como4" value="Anuncio en tv">
    <label for="como4">Anuncio en tv</label>

    <button type="submit">Enviar</button>

</form>
Fíjate como el atributo name es el mismo para cada checkbox: como[]. Los corchetes indican que todos esos campos input forman un array. Es decir, hay que poner el mismo atributo name seguido de [] en cada input que quieras que forme parte del mismo array. Si se envía el formulario mediante GET podrás ver que se envían en forma de cadena con este aspecto: name[]=valor1&name[]=valor2&name[]=valor3. Por ejemplo, si en el formulario anterior se seleccionaran «Google» y «Anuncio en tv»: como[]=Google&como[]=TV.

Procesamiento en PHP 6m6f1w


El formulario anterior se envía mediante método GET, así que nuestro array como[] estará almacenado en $_GET['como']. Es importante notar que $_GET['como'] será un array no asociativo con los distintos valores enviados en como[]. Por ejemplo, si se seleccionaron «Google» y «Anuncio en tv», $_GET['como'] será igual a array("Google", "TV").

Así que podemos capturar los valores seleccionados y procesar el formulario de forma sencilla. Por ejemplo, podemos construir una lista con las opciones seleccionadas:
if ( !empty($_GET["como"]) && is_array($_GET["como"]) ) { 
    echo "<ul>";
    foreach ( $_GET["como"] as $como ) { 
            echo "<li>";
            echo $como; 
            echo "</li>"; 
     }
     echo "</ul>";
}
En el código anterior primer comprobamos que se recibe $_GET["como"], que no tiene un valor vacío y que es un array (si no $_GET["como"] no es un array, no podría contener datos de nuestro formulario pues como lo habíamos construido como array). Después hacemos un loop foreach sobre cada valor del array para construir la lista.

Como ves, usando arrays e inputs se puede hacer más fácil y rápida la construcción y procesamiento de un formulario cuándo cada input representa una opción para un mismo campo. Esta estructura también es más coherente ya que si varios valores son opciones de un mismo elemento, el array es un tipo de variable muy adecuada.
Compartir

Mi nombre es Alexander fundador y CEO, y me gusta llamarme un Geek. Amo la informática, tecnología y todo lo que está relacionado con ella. Inicié este sitio con la intención de compartir conocimientos como cursos en línea, tutoriales y videotutoriales. Estoy muy entusiasmado con la información que he descubierto y compartido hasta el momento. La verdad es que lo he hecho con el mayor de los gustos. Así es, soy un Geek con una visión para compartir conocimiento. Leer mas... 6c435j