Foros del Web » Programando para Internet » Jquery »

Como enviar select multiple utilizando ajax

Estas en el tema de Como enviar select multiple utilizando ajax en el foro de Jquery en Foros del Web. Como enviar select multiple utilizando ajax @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código HTML: Ver original < select class = "populate" multiple = "multiple" id = "e9" style = ...
  #1 (permalink)  
Antiguo 05/03/2014, 23:22
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Como enviar select multiple utilizando ajax

Como enviar select multiple utilizando ajax


Código HTML:
Ver original
  1. <select class="populate" multiple="multiple" id="e9" style="width:300px" name="e9">



Código Javascript:
Ver original
  1. $('#registrar').click(function(){
  2.  
  3.     var e9 = $("#e9").val();
  4.     var estacion_id = $("#estacion_id").val();
  5.  
  6.     $.ajax({
  7.         url:'http:/volcano/public/postInstalador',
  8.                 type:'post',
  9.         data:'e9='+e9+'&estacion_id='+estacion_id
  10.                }).done(function(data) {
  11.             alert("Evento Guardado");
  12.                     });
  13. });
  #2 (permalink)  
Antiguo 06/03/2014, 02:42
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Como enviar select multiple utilizando ajax

Podrías ir metiendo en una array a los valores que seleccionas del select múltiple, si le das clic a uno ya seleccionado, lo sacas del array. Al final, en lugar de enviar el valor del select que siempre será el primer valor seleccionado, envías el contenido del array que es el que contiene a todos los valores seleccionados. Un ejemplo.

Código HTML:
Ver original
  1. <select multiple>
  2.     <option value = 1>UNO</option>
  3.     <option value = 2>DOS</option>
  4.     <option value = 3>TRES</option>
  5.     <option value = 4>CUATRO</option>
  6.     <option value = 5>CINCO</option>
  7. <button>Check</button>

Código Javascript:
Ver original
  1. $("button").click(function(){
  2.     var a = [],
  3.         s = document.getElementsByTagName("select")[0],
  4.         t = s.options.length;
  5.    
  6.     for (i = 0; i < t; i++)
  7.         if (s.options[i].selected)
  8.             a.push(s.options[i].value);
  9.    
  10.     $.ajax({
  11.         url: "http:/volcano/public/postInstalador",
  12.         type: "post",
  13.         data: {e9: a, estacion_id: estacion_id}
  14.     }).done(function(data){
  15.         alert("Evento Guardado");
  16.     });
  17. });

Saludos
__________________
«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
  #3 (permalink)  
Antiguo 06/03/2014, 10:09
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Como enviar select multiple utilizando ajax

Alexis88 gracias por responder , hice lo que me indicaste pero obtengo un error en

el error que obtengo en consola es

Cita:
TypeError: s is undefined
t = s.options.length;
Código Javascript:
Ver original
  1. $('#registrar').click(function(){
  2.  
  3.     var a = [],
  4.         s = document.getElementsByTagName("e9[]")[0],
  5.         t = s.options.length;
  6.    
  7.     for (i = 0; i < t; i++)
  8.         if (s.options[i].selected)
  9.             a.push(s.options[i].value);
  10. var estacion_id = $("#estacion_id").val();
  11.  
  12.  
  13.  
  14. $.ajax({
  15. url:'http:/volcano/public/postInstalador',
  16. type:'post',
  17. data:'e9='+e9+'&estacion_id='+estacion_id
  18. }).done(function(data) {
  19. alert("Evento Guardado");
  20. });
  21. });
  #4 (permalink)  
Antiguo 06/03/2014, 11:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Como enviar select multiple utilizando ajax

¿Y por qué pones e9[]?, fíjate que estoy tomando al select por su nombre de etiqueta, es decir, por select, no por el nombre que tiene. Si deseas tomarlo por su nombre, hazlo así:

Código Javascript:
Ver original
  1. s = document.getElementsByName("e9")[0]

Saludos
__________________
«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

Última edición por Alexis88; 06/03/2014 a las 12:03
  #5 (permalink)  
Antiguo 06/03/2014, 13:09
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Como enviar select multiple utilizando ajax

Alexis88 gracias por responder, funciono perfecfo solo tengo una pregunta mas. con .done(function(data) {..... puedo retornar una url como por ejemplo http://localhost/volcano/public/instaladores/160
  #6 (permalink)  
Antiguo 06/03/2014, 13:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Como enviar select multiple utilizando ajax

¿A qué te refieres con retornar una URL y para qué?
__________________
«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
  #7 (permalink)  
Antiguo 06/03/2014, 13:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 14 años, 3 meses
Puntos: 6
Respuesta: Como enviar select multiple utilizando ajax

Alexis88 lo que pasa es que tengo una pagina donde listo una consulta a una base de datos y tengo una modal que contiene el select multiple ya lo envio a la base de datos y ahora requiero que se visualice la pagina donde listo pero que se vea el nuevo registro tambien
  #8 (permalink)  
Antiguo 06/03/2014, 13:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años, 1 mes
Puntos: 977
Respuesta: Como enviar select multiple utilizando ajax

Supongo que te refieres a cargar el contenido de esa página externa en un área específica de la página desde la que realizas la petición asíncrona (Ajax). En ese caso, puedes utilizar el método load que se usa así:

Código Javascript:
Ver original
  1. $("#idArea").load("tupagina.php");

Si te refieres a realizar una redirección, puedes hacerlo así:

Código Javascript:
Ver original
  1. $(location).prop("href", "tupagina.php");

Si no es ninguna de las anteriores, acláramelo para poder ayudarte.

Saludos
__________________
«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

Etiquetas: ajax, 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 07:20.