Programatik

September 13, 2007

Manejo de datos de un select múltiple desde PHP

Filed under: php — Rafa @ 1:02 am

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í.

Enlaces

  • http://www.rafachacon.com/lab/form-multiselect/
  • http://www.rafachacon.com/lab/form-multiselect/index.zip
  • 2 Comments »

    1. Esto es algo con lo q me estuve dando de cabezazos por mucho tiempo…

      Comment by Luis — September 18, 2007 @ 3:51 pm

    2. En su dia me estuve dando de cabezazos con esto hasta que entendi como funcionaba :)

      Comment by NabLa — November 22, 2007 @ 11:25 am

    RSS feed for comments on this post. TrackBack URL

    Leave a comment

    *
    To prove that you're not a bot, enter this code
    Anti-Spam Image

    Powered by WordPress