Obtener todos los valores de un select multiple (seleccionados o no)

1,722 views
Skip to first unread message

William Alexander Moreno Gomez

unread,
Aug 24, 2016, 4:46:37 PM8/24/16
to Django-es
Buenas tardes a todos,

llevo unos meses aprendiendo y desarrollando ciertas cosas en django, y espero me puedan colaborar con lo siguiente ya que he buscado bastante pero no logro como realizarlo.

la idea es que tengo dentro de un formulario de metodo POST a parte de unos input , dos select multiple , uno con las opciones disponibles y otro con opciones escogidas, y quiero que al realizar submit al formulario, se envie dentro de la solicitud todos los valores del select (opciones escogidas) asi esten seleccionadas o no, el tema es que hasta el momentos solo me envia dentro del post las opciones seleccionadas y como digo me interesa recibir todas las opciones del select.

gracias

Javier Sanchez Toledano

unread,
Aug 24, 2016, 4:53:14 PM8/24/16
to djan...@googlegroups.com
Una preguntita... ¿cómo generas ese select? ¿Tal vez con un ModelForm o con un widget en la clase Form correspondiente? ¿Ese select se llena con los valores de una clave foránea o con una lista de tuplas en un CHOICES?

Javier Sanchez Toledano Auditor Líder ISO 9001 // Desarrollo Web Python+Django js.to...@me.com

El 24 ago 2016 a las 15:46, William Alexander Moreno Gomez <william.a...@gmail.com> escribió:o me > interesa recibir todas las opciones del select.

Farid Escate

unread,
Aug 25, 2016, 12:29:25 AM8/25/16
to djan...@googlegroups.com
Puedes hacer que por defecto todas la opciones del select de opciones disponibles esten en "selected" y ocultar el select con css. Aunque lo ideal seria que tengas esa lista en la base de datos.
--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-unsubscribe@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.


--
Enviado con Gmail Mobile

William Alexander Moreno Gomez

unread,
Aug 25, 2016, 11:12:54 AM8/25/16
to Django-es
Gracias Javier,

hasta el momento no me he iniciado con los formularios de django, por lo que el select se encuentra dentro de un form creado en html , mas abajo dejo el codigo, lo bueno es que como no encontre como hacer que la solicitud post enviara todos los valores del select,  logre realizarlo con jquery haciendo que todas las opciones del select se seleccionen cuando se oprime el boton de submit.

de nuevo gracias por tu colaboracion y el siguiente paso al que voy es utilizar un formulario de django para remplazar el hecho en html.

codigo de la plantilla html

<form id="formulario_1" class="" action="" method="post"> {%csrf_token%}
    <select class="form-control" id="select_1" name="clientes" multiple="multiple" size="8">
        {% for cliente in clientes %}
            <option value="{{cliente}}">{{cliente}}</option>
        {% endfor %}
    </select>
    <input id="enviar" type="submit" value="enviar">
 </form>

codigo de java script

<script>
    $(document).ready(function(){
        $("#enviar").click(function(){
            $("#select_1 option").each(function (){
                  $(this).prop('selected',true);
            });
         });
    });
</script>

William Alexander Moreno Gomez

unread,
Aug 25, 2016, 11:13:57 AM8/25/16
to Django-es
gracias Ivan,

en efecto logre realizarlo con jquery haciendo que cuando se oprima el boton de submit se seleccionen todas las opciones dentro del select.


<form id="formulario_1" class="" action="" method="post"> {%csrf_token%}
    <select class="form-control" id="select_1" name="clientes" multiple="multiple" size="8">
        {% for cliente in clientes %}
            <option value="{{cliente}}">{{cliente}}</option>
        {% endfor %}
    </select>
    <input id="enviar" type="submit" value="enviar">
 </form>

codigo de java script

<script>
    $(document).ready(function(){
        $("#enviar").click(function(){
            $("#select_1 option").each(function (){
                  $(this).prop('selected',true);
            });
         });
    });
</script>

js.to...@me.com

unread,
Aug 25, 2016, 12:20:54 PM8/25/16
to Django-es

En ese ejemplo solo hay un select y había entendido que eran dos. Si ese es todo el select, las opciones están en clientes. No vemos como se genera pero puedes hacerla disponible en todo tu proyecto.

Obtener Outlook para Android




Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com

Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+...@googlegroups.com.

Farid Escate

unread,
Aug 25, 2016, 1:42:14 PM8/25/16
to djan...@googlegroups.com
Genial, también puede que funciones así:

  {% for cliente in clientes %}
     <option value="{{cliente}}" selected>{{cliente}}</option>
  {% endfor %}

Aunque seguro quieres darle el efecto de que no se vea seleccionado.

---
Farid Escate P.
Reply all
Reply to author
Forward
0 new messages