Manejo de datos de un select múltiple desde PHP
Elemental significa cerca de los elementos lo cual no quiere decir que sea necesariamente sencillo. A veces, lo elemental se nos escapa, con frecuencia, por desuso.
Es el caso de cómo manejar la recogida de datos vía PHP enviados a través de un formulario donde hay un campo select múltiple.
Supongamos el caso de este ejemplo que se puede ver en el Lab. Tenemos un select con varias opciones a elegir y cuyos valores (atributos value de las etiquetas option) están numerados de 0 en adelante.
Si nuestro código para el campo select es de la forma
<select name="options" id="options" multiple="multiple"> <option value="0">Option #1</option> <option value="1">Option #2</option> <option value="2">Option #3</option> <option value="3">Option #4</option> <option value="4">Option #5</option> <option value="5">Option #6</option> <option value="6">Option #7</option> <option value="7">Option #8</option> <option value="8">Option #9</option> <option value="9">Option #10</option> </select>
no podremos recoger qué elementos se han seleccionado ya que solo obtendremos el último valor seleccionado.
Para solventar esto se debe escribir el código de la siguiente manera
<select name="options[]" id="options" multiple="multiple"> <option value="0">Option #1</option> <option value="1">Option #2</option> <option value="2">Option #3</option> <option value="3">Option #4</option> <option value="4">Option #5</option> <option value="5">Option #6</option> <option value="6">Option #7</option> <option value="7">Option #8</option> <option value="8">Option #9</option> <option value="9">Option #10</option> </select>
De esta forma indicamos que options es un array de valores y podremos, desde PHP, obtener los elementos seleccionados.
Si el formulario se ha enviado vía post, el array de valores será
$_POST['options']
Como siempre, el código para descargar, aquí.
Esto es algo con lo q me estuve dando de cabezazos por mucho tiempo…
Comment by Luis — September 18, 2007 @ 3:51 pm
En su dia me estuve dando de cabezazos con esto hasta que entendi como funcionaba
Comment by NabLa — November 22, 2007 @ 11:25 am