La Web del Programador: Comunidad de Programadores
 
    Pregunta:  47363 - COMBOS MULTIPLES
Autor:  Ana
Hola!! Mi pregunta es la siguiente. Hemos declarado un combo multiple que lo hemos creado en un formulario entre codigo javascrit para hacerlo dinamico, es decir, q en funcion de la titulacionq elija se carguen sus asignaturas. La declaracion es: <select name="asignaturas" size="10" multiple>
Cuando damos al boton enviar queremos introducir las asignaturas seleccionadas en la base de datos correspondientes, pero no somos capaces de leer que asignaturas estan seleccionadas. Pensamos que seria asignaturas[1] y asi sucesivamente pero nada, asi no es. Solo conseguimos leer la ultima que esta seleccionada.
Si alguien sabe y nos puede ayudar.....
GraCIAS

  Respuesta:  Daniel Coitinio
Debes asignarle una matriz al nombre del control y recibirás, por get o post según sea tu caso, dicha matriz. Ej:

<select name="asignaturas[]" multiple>
<option value="1">Asignatura 1</option>
<option value="2">Asignatura 2</option>
<option value="3">Asignatura 3</option>
<option value="10">Asignatura 10</option>
</select>

Debes añadir [ ] en el nombre del select y recibiras la matríz con todos los elementos seleccionados

Si hubieras seleccionado las tres primeras opciones del ejemplo tendrías:

$_POST['asignaturas'][0] = 1
$_POST['asignaturas'][1] = 2
$_POST['asignaturas'][2] = 3

  Respuesta:  Hipopo Hipersonico
Solo debes recibir en la misma pagina las asignaturas que envias con alguno de los 2 metodos (Post o Get) , luego puedes de nuevo llenar el Combo de la Base de Datos pero para ello tendrias que hacerlo obligadamente dentro de un script en otra pagina que tendria que retornar el arreglo que se genere dinamicamente de la consulta , para luego llenar nuevamente el select con las asignaturas esta clarito no tan facil pero bonito jeje ;)