Cómo usar un Select Múltiple en PHP

Cómo usar un Select Múltiple en PHP y recuperar los elementos seleccionados a través de un array

El otro día tuve que utilizar un selector múltiple en una aplicación web PHP para permitir la selección de varios usuarios a través de un desplegable. La duda que tenía era cómo recuperar del contexto los elementos seleccionados una vez enviado el formulario. En google estaba la solución.

Los selectores múltiples almacenan los elementos almacenados en un array, de forma que la página del action del formulario (ya sea la misma u otra que hayamos creado para la gestión de la información) recuperará del contexto los elementos asignados a través del selector múltiple metiéndolos en un array. Veamos un ejemplo:

Página del formulario

<body>
<form id=”form1″ method=”POST” action=”destino.php”>
<label>
<select name=”usuarios[]” multiple>
<option value=”1″>  Usuario 001 </option>
<option value=”2″>  Usuario 002 </option>
<option value=”3″>  Usuario 003 </option>
</select>

<input type=submit value=”Enviar”></input>
</label>
</form>
</body>

Página del action (destino.php)

<?php

// creamos el array
$usuarios = array();

// recuperamos el elemento usuarios
$usuarios = $_POST[‘usuarios’];

// lo recorremos e imprimimos
foreach($usuarios as $user){
echo $user.'<br>\n’;
}

?>

Descargar ejemplo de Select Múltiple en PHP

Etiquetas:

Suscríbete a nuestro Feed para recibir las últimas novedades de diseño web, diseño gráfico y programación

2 Comentarios hasta el momento »

  1. Fer dijo

    11 de marzo del 2010 a las 21:52

    Muy útil su ejemplo y muy agradecido. Tengo más de un SELECT que van recibiendo los array escogidos en el anterior y para evitar que vuelvan a ser seleccionados en otro SELECT, debo destacarlos con un color, o bien emplear array_unique, para evitar duplicados, o bien, según he leído en otro foro, usar JavaScript, para que vayan desapareciendo las opciones ya seleccionadas de los SELECT. Si hubiera una forma de hacerlo con PHP, me alegraría mucho. Gracias nuevamente

  2. Nagash dijo

    16 de marzo del 2010 a las 12:47

    Hola Fer,

    Puedes probar con AJAX, que al final, se reduce a Javascript.

    Un saludo.

Comentarios RSS · TrackBack URI

Dejanos tu Comentario

Nombre: (Requerido)

E-Mail: (Requerido)

Sitio WEB:

Comentario:

What is 9 + 10 ?
Please leave these two fields as-is: