Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Pasar dos valores por ajax a php en una sola función

Estas en el tema de Pasar dos valores por ajax a php en una sola función en el foro de Jquery en Foros del Web. Cordial saludo. Me encuentro desarrollando una página web que busca una parte de un libro almacenado en una base de datos (nombre del libro y ...
  #1 (permalink)  
Antiguo 20/01/2016, 08:08
Avatar de reymagnus  
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Pasar dos valores por ajax a php en una sola función

Cordial saludo.

Me encuentro desarrollando una página web que busca una parte de un libro almacenado en una base de datos (nombre del libro y número de capitulo)y la muestra en la página.

He utilizado ajax y jQuery para generar dos select dependientes. Lo que necesito ahora es obtener los valores seleccionados de esos select dependientes.

He utilizado estas funciones con éxito sólo para un valor y una sola función, pero no sé como pasar los dos valores de los select en una sola función:

Código Javascript:
Ver original
  1. function cargarPaginaPHP(pagina, contenedor, data) {
  2.                 var selected = $("#libros option:selected").text();
  3.                 var content = $('#' + contenedor);
  4.                   $.ajax({
  5.                         type: "GET",
  6.                         url: "" + pagina,
  7.                         data: "selected=" + selected,
  8.                         success: function(data) {
  9.                           content.html(data);
  10.                         }
  11.                     });
  12.                 }
  13.              
  14.                 function cargarPaginaPHP2(pagina, contenedor, data) {
  15.                 var selected2 = $("#capitulos option:selected").text();
  16.                 var content = $('#' + contenedor);
  17.                   $.ajax({
  18.                         type: "GET",
  19.                         url: "" + pagina,
  20.                         data: "selected=" + selected2,
  21.                         success: function(data) {
  22.                         content.html(data);
  23.                       }
  24.                   });
  25.               }

Al presionar un botón, se capturarían los dos valores, sin embargo esto me está generando valores incorrectos o el desconcertante error "undefined index".

Aquí la etiqueta HTML que llama las dos funciones:

Código HTML:
Ver original
  1. <input type="button" onclick="cargarPaginaPHP('recibeParametro.php','contenedor','');cargarPaginaPHP2('recibeParametro.php','contenedor','');" >

Necesito lo siguiente:

1. Que reconozca los valores activos o visibles del select aún sin haber seleccionado previamente un valor del combo (ya que puede no reconocer valores del select de capítulo sin antes no haberlo seleccionado).

2. enviar el valor de las dos variables (selected y selected2) en una sola función de ajax y que la reconozca sin un "notice: undefined index" en el correspondiente script de php.

3. generar la etiqueta html que llame a esa función con sus parámetros correspondientes.

Por favor si alguien puede ayudarme le agradecería ya que llevo varios días en este problema y soy novato en este campo de la programación.
  #2 (permalink)  
Antiguo 20/01/2016, 09:17
Avatar de siddartha23  
Fecha de Ingreso: septiembre-2013
Mensajes: 357
Antigüedad: 10 años, 7 meses
Puntos: 39
Respuesta: Pasar dos valores por ajax a php en una sola función

1. Puedes recuperar el valor del select llamando a la función val() que recuperará el valor dependiendo de qué opción se haya seleccionado, puedes tener alguna opción seleccionada por defecto.

2. Puedes enviar el valor de dos variables o más enviándolas en formato JSON {valor1: valor, valor2: valor, etc..}

3. En la etiqueta html puedes guardar atributos "data" que luego puedes recuperar en tu script para usarlos como parámetro.
__________________
velarde23.com - Soluciones Web
  #3 (permalink)  
Antiguo 20/01/2016, 09:52
Avatar de reymagnus  
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Pasar dos valores por ajax a php en una sola función

Hola siddartha23 y gracias por responder.

Cita:
Iniciado por siddartha23 Ver Mensaje
1. Puedes recuperar el valor del select llamando a la función val() que recuperará el valor dependiendo de qué opción se haya seleccionado, puedes tener alguna opción seleccionada por defecto.
Ok, eso creo que lo puedo hacer.

Cita:
Iniciado por siddartha23 Ver Mensaje
2. Puedes enviar el valor de dos variables o más enviándolas en formato JSON {valor1: valor, valor2: valor, etc..}
¿Me podrías por favor dar un ejemplo?, no me queda claro cómo hacer eso en mi caso. Los ejemplos que encuentro no usan funciones...

Cita:
Iniciado por siddartha23 Ver Mensaje
3. En la etiqueta html puedes guardar atributos "data" que luego puedes recuperar en tu script para usarlos como parámetro.
Ok, eso se puede hacer.
  #4 (permalink)  
Antiguo 20/01/2016, 10:06
Avatar de siddartha23  
Fecha de Ingreso: septiembre-2013
Mensajes: 357
Antigüedad: 10 años, 7 meses
Puntos: 39
Respuesta: Pasar dos valores por ajax a php en una sola función

Hola, en el punto 2 me refería a que dentro de tu script mandes la data así:
Código Javascript:
Ver original
  1. $.ajax({
  2.                         type: "GET",
  3.                         url: "" + pagina,
  4.                         data: {selected: valor1, selected2: valor2 },
  5.                         success: function(data) {
  6.                           content.html(data);
  7.                         }
  8.                     });
__________________
velarde23.com - Soluciones Web
  #5 (permalink)  
Antiguo 20/01/2016, 11:00
Avatar de reymagnus  
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Pasar dos valores por ajax a php en una sola función

Cita:
Iniciado por siddartha23 Ver Mensaje
Hola, en el punto 2 me refería a que dentro de tu script mandes la data así:
Código Javascript:
Ver original
  1. $.ajax({
  2.                         type: "GET",
  3.                         url: "" + pagina,
  4.                         data: {selected: valor1, selected2: valor2 },
  5.                         success: function(data) {
  6.                           content.html(data);
  7.                         }
  8.                     });
Hola, modificando el ejemplo que me das, lo dejaría así, aunque no me muestra nada en el php o da error:

Código Javascript:
Ver original
  1. function cargarPaginaPHP3(pagina, contenedor, data) {
  2.                                             var selected; //= $("#libros option:selected").text();
  3.                                             var selected2; //= $("#capitulos option:selected").text();
  4.                                             var content = $('#' + contenedor);
  5.                                               $.ajax({
  6.                                                     type: "GET",
  7.                                                     url: "" + pagina,
  8.                                                     //data: {"selected=" + selected, "selected2=" + selected},
  9.                                                     data: {selected: $("#capitulos option:selected").text(), selected2: $("#capitulos option:selected").text() },
  10.                                                     datatype: "json";
  11.                                                     success: function(data) {
  12.                                                     content.html(data);
  13.                                                   }
  14.                                               });
  15.                                           }
  16.                                                     datatype: "json";
  17.                                                     success: function(data) {
  18.                                                     content.html(data);
  19.                                                   }
  20.                                               });
  21.                                           }
  #6 (permalink)  
Antiguo 20/01/2016, 12:30
Avatar de reymagnus  
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Pasar dos valores por ajax a php en una sola función

Hola a todos, hice unas correcciones y parece que así sirve (por si alguien tiene la misma duda):

Código Javascript:
Ver original
  1. function cargarPaginaPHP3(pagina, contenedor, data) {
  2.                                             var selected = $("#libros option:selected").text();
  3.                                             var selected2 = $("#capitulos option:selected").text();
  4.                                             var content = $('#' + contenedor);
  5.                                               $.ajax({
  6.                                                     type: "GET",
  7.                                                     url: "" + pagina,
  8.                                                     //data: {"selected=" + selected, "selected2=" + selected},
  9.                                                     data: {selected: selected, selected2: selected2 },
  10.                                                     //datatype: "json";
  11.                                                     success: function(data) {
  12.                                                     content.html(data);
  13.                                                   }
  14.                                               });
  15.                                           }

Etiquetas: ajax, php
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 10:34.