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
  • September 6, 2007

    Detección de pulsación de teclas con javascript

    Filed under: JavaScript — Rafa @ 6:02 pm

    He estado buscando la forma de detectar mediante javascript las pulsaciones de teclas de forma que sea compatible con otros navegadores además de Internet Explorer.

    La clave está en que para detectar la pulsación de teclas debemos tener presentes que dicha detección se hace siempre desde un evento keypress, keyup o keydown.

    Una demostración puede verse en esta dirección del lab:

    Demostración de la detección de la tecla pulsada

    Para que sea compatible con otros navegadores (no solo Internet Explorer), tomamos el elemento del DOM sobre el que vamos a detectar la pulsación de teclas y le asociamos una función anónima al evento de pulsación (keypress, keydown o keyup) a la que se pasa el evento como argumento.

    Y, como siempre, el código para descargar, aquí.

    Enlaces

  • http://www.rafachacon.com/lab/javascript-pulsacion-de-teclas/
  • http://www.rafachacon.com/lab/javascript-pulsacion-de-teclas/javascript-pulsacion-de-teclas.zip
  • Powered by WordPress