Pasar un array a select múltiple con select2
Pasar un array a un select múltiple con select2. Aprenderemos a como volcar la información de MySQL a una etiqueta de lista desplegables tipo (select múltiple).
Si tienes un formulario que posee un select múltiple que se carga con los datos de una base de datos. En este select, el usuario selecciona varias opciones. En el proceso de guardado de los datos, guardo el array en la base de datos con este formato:
["1","2","3"]
Ahora viene el momento en que tengo que recuperar lo que el usuario seleccionó. ¿Como marco como “selected” aquellos items cuyos valores son los que están guardados en la base de datos ?
Como recuperar opciones seleccionadas en un select múltiple.
En un artículo anterior hemos aprendido a como guardar información de un select múltiple y ahora intentaremos recuperar los valores de las opciones seleccionadas mediante JavaScript.
Si la información proviene de un array o de datos de una base de datos podemos usar el siguiente ejemplo:
<select name="nombre" multiple>
<?php
$seleccionados = ["17","12","11","13","5"];
foreach($valores as $clave => $nombre) {
// Verificas si la clave está en los seleccionados
$sel = (in_array($clave, $seleccionados)) ? ' selected' : '';
echo "<option value=\"$clave\"$sel>$nombre</option>";
}
?>
</select>
El código anterior funciona correctamente y puedes adaptarlo a librerías de tipo SELECT2 u otros.