Foros del Web » Programando para Internet » Javascript »

Select option multiple javascript

Estas en el tema de Select option multiple javascript en el foro de Javascript en Foros del Web. Hola a todos soy nuevo en javascript y tengo esta pregunta concisa de ¿Como podría crear un select option múltiple estilo optgroup con javascript ? ...
  #1 (permalink)  
Antiguo 03/02/2016, 13:44
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Select option multiple javascript

Hola a todos soy nuevo en javascript y tengo esta pregunta concisa de ¿Como podría crear un select option múltiple estilo optgroup con javascript?
Únicamente que con este estilo o tipo:


En el form, la lista izquierda estaria echa con datos de un select file multiple preexistente mediante $_POST, y la sub fila, sub menu o segunda fila a la derecha, de un segundo select file multiple igualmente previo.

Es para seleccionar cada objeto de la izquierda por individual o separado y añadirle características de las sub opciones. Quedaria impreso en arrays que mostrarían un resultado por opcion de acuerdo a sus características seleccionadas, pero no se como seria con javascript.

Podrían guiarme totalmente?

Última edición por leo_search1; 03/02/2016 a las 19:26
  #2 (permalink)  
Antiguo 04/02/2016, 07:09
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba
Mensajes: 119
Antigüedad: 13 años, 5 meses
Puntos: 8
Respuesta: Select option multiple javascript

Con la propiedad multiple del tag select ¿no te vale?.

Saludos!
  #3 (permalink)  
Antiguo 04/02/2016, 15:06
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Respuesta: Select option multiple javascript

Cita:
Iniciado por kraneok Ver Mensaje
Con la propiedad multiple del tag select ¿no te vale?.

Saludos!

Estoy tratando de hacer lo siguiente, pero similar a la imagen que muestro anteriormente, y recibiendo cada resultado por separado, pero todo llega en un solo Array.

>>> PAGINA AQUI <<<

Código PHP:
<?php


$arrYourArray 
= array(
    
"0" => "Elije para el grupo 1",
    
"1" => "Elije para el grupo 2",
    
"2" =>"Elije para el grupo 3");
print_r($arrYourArray);
?>

<form name="formu" id="formu" action="war.php" method="post" enctype="multipart/form-data">

    <dt><label>Accesorios opcional</label></dt>
    <input type="file" multiple id="arc" name="archivos[]" /><br />
    <?php


    
for($i 0$i 3$i++) {
        echo 
'<select name="country[]" multiple>';


            echo 
'<optgroup label="' $arrYourArray[$i] . '">';

            foreach (
$_FILES['archivos']['name'] as $value) {
                
$select '<option name="optin[]" value="' $value '">' $value '</option>'//close your tags!!
                
echo $select;


            }
            echo 
'</optgroup>';



echo 
'</select>';
    }

    
?>

    <label>Prendas opcional</label>

    <input type="submit" value="Enviar" id="envia" name="envia" />

</form>

<?php

echo("<pre>");
print_r($_POST);
echo(
"<pre>");

?>

¿Como podría solucionar esto? Estoy desesperado
  #4 (permalink)  
Antiguo 04/02/2016, 16:21
Avatar de leo_search1  
Fecha de Ingreso: octubre-2011
Mensajes: 100
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Respuesta: Select option multiple javascript

Cita:
Iniciado por kraneok Ver Mensaje
Con la propiedad multiple del tag select ¿no te vale?.

Saludos!
He cambiado en algo el codigo, aún así no se envian por separado.

>>>WEB AQUI<<<
Código PHP:
<?php


$arrYourArray 
= array(
    
"0" => "Elije para el grupo 1",
    
"1" => "Elije para el grupo 2",
    
"2" =>"Elije para el grupo 3");
print_r($arrYourArray);
?>

<form name="formu" id="formu" action="war.php" method="post" enctype="multipart/form-data">

    <dt><label>Accesorios opcional</label></dt>
    <input type="file" multiple id="arc" name="archivos[]" /><br />
    <?php


    
for($i 0$i 3$i++) {


        echo 
'<select name="'.$i.'" multiple>';


            echo 
'<optgroup name="'.$arrYourArray[$i].'" label="' $arrYourArray[$i] . '">';

            foreach (
$_FILES['archivos']['name'] as $value) {
                
$select '<option name="'.$arrYourArray[$i].'" value="' $value '">' $value '</option>'//close your tags!!
                
echo $select;


            }
            echo 
'</optgroup>';

        echo 
'</select>';

    }

    
?>

    <label>Prendas opcional</label>

    <input type="submit" value="Enviar" id="envia" name="envia" />

</form>

<?php

for($i 0$i 3$i++) {

    echo(
"<pre>");
    
print_r($_POST);
    echo(
"<pre>");


}



?>
  #5 (permalink)  
Antiguo 04/02/2016, 22:11
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Select option multiple javascript

Para obtener un buen resultado, tendrías que hacer un <select> personalizado, utilizando HTML y CSS. Aquí puedes ver un ejemplo de cómo hacer y aquí un ejemplo para hacer un menú desplegable multinivel. Para marcar/desmarcar las opciones cada vez que se las seleccione/deseleccione, necesitarás trabajar con el evento click y asignarle ya sea estilos o una clase CSS a cada opción según esté marcada o desmarcada. Incluso podrías añadirle esa marca que indica que la opción ha sido seleccionada, utilizando el pseudoelemento :before.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 05/02/2016, 03:45
 
Fecha de Ingreso: noviembre-2010
Ubicación: Córdoba
Mensajes: 119
Antigüedad: 13 años, 5 meses
Puntos: 8
Respuesta: Select option multiple javascript

Bueno, creo realmente que es mucho mas sencillo de lo que lo estás planteando, te voy a poner una aproximación inicial y a ver si de esta forma eres capaz de sacar. Para este ejemplo vamos a utilizar capacidades de HTML5 como ponter atributos data.

Tenemos una lista con sublistas, donde la lista padre va a ser el grupo alimenticio por así decirlo y la segunda lista, los alimentos que están dentro de ese grupo. Para ello lo primero deberías hacer un menú desplegable, nada de usar tag select ni nada.

Código HTML:
Ver original
  1. <ul>
  2. <ul class="food-list">
  3.     <li data-food="Vegetables">Vegetables
  4.         <ul>
  5.             <li data-aliment="Lechuga">Lechuga</li>
  6.             <li data-aliment="Cebolla">Cebolla</li>
  7.         </ul>  
  8.     </li>
  9.     <li data-food="Pescados">Pescados
  10.         <ul>
  11.             <li data-aliment="Mero">Mero</li>
  12.             <li data-aliment="Sardina">Sardina</li>
  13.         </ul>
  14.     </li>
  15.     <li data-food="Frutas">Frutas</li>
  16. </ul>
  17. </ul>

Código Javascript:
Ver original
  1. var foodTypesDOM = $('.food-list').find ('[data-food]'); // Traemos todos los los data-food
  2.     var foodTypes    = {};
  3.  
  4.     //
  5.     // Introducimos en foodTypes cada data-food
  6.     // Es decir, tendremos foodTypes ["Vegetables"], foodTypes ["Pescados"], etc
  7.     $.each (foodTypesDOM, function (index, element) {
  8.         // Esto monta el array asociado al data-food
  9.         // donde se almacenarán los alimentos
  10.         foodTypes [$(element).data ('food')] = [];
  11.     });
  12.  
  13.     //
  14.     // Ahora añadiremos un evento click a la lista de grupos
  15.     // alimenticios y solo captaremos los que se den sobre
  16.     // los que tienen el atributo aliment
  17.     $('.food-list').on ('click', function (evt) {
  18.         var $element = $(evt.target);
  19.         //
  20.         // Comprobamos que lo que se pulsa es un alimento
  21.         if ($element.data ('aliment') !== undefined) {
  22.             //
  23.             // Buscamos el padre del alimento que ha pulsado
  24.             // El padre puede ser Vegetables, Pescados, Frutas en este caso
  25.             var parent = $element.parent().parent().data ('food');
  26.  
  27.             //
  28.             // Ahora accedemos a nuestro objeto de grupos
  29.             // alimenticios y vamos directamente al parent que haya
  30.             // Es decir si en parent está Vegetables, foodTypes [parent] apunta
  31.             // al array de Vegetables
  32.             foodTypes [parent].push ($element.data ('aliment'));
  33.         }
  34.  
  35.         console.log (foodTypes);
  36.     });

Debes acabarlo tu. No tiene validaciones ni nada, si tienes dudas preguntame.
Gracias y saludos!

Etiquetas: múltiple, option, resultados, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:42.