Foros del Web » Programando para Internet » Jquery »

enviar datos por ajax y devolver otro archivo

Estas en el tema de enviar datos por ajax y devolver otro archivo en el foro de Jquery en Foros del Web. Bien amigos os expongo lo mejor que pueda mi problema. Necesito enviar datos a una pagina que me hace un insert into para introducir un ...
  #1 (permalink)  
Antiguo 16/01/2018, 13:44
 
Fecha de Ingreso: agosto-2008
Mensajes: 601
Antigüedad: 10 años, 1 mes
Puntos: 11
enviar datos por ajax y devolver otro archivo

Bien amigos os expongo lo mejor que pueda mi problema. Necesito enviar datos a una pagina que me hace un insert into para introducir un registro, hasta aquí va bien. El problema viene cuando pretendo mostrar el resultado de esa acción, yo quiero cargar
una pagina donde se encuentra una consulta a la base de datos y mostrarla con este registro ya incluido, pero no se como. Os pongo el código que tengo para enviar los datos de un formulario y el resto no se que poner
Código Javascript:
Ver original
  1. $(document).on("click", " #insertar #bo", function(){
  2.         $.post("insertar_pelicula.php", {
  3.  
  4.             "titulo":$("#insertar #titulo").val(),
  5.             "director":$("#insertar #director").val(),
  6.             "fecha":$("#insertar #fecha").val(),
  7.             "idtip":$("#insertar #idtip").val()
  8.            }, function(){
  9.                 //aquí es donde me pierdo porque no se que poner
  10.                //para traerme el archivo donde se escribe el resultado deuna consulta a la //base de datos
  11.             })
  12.    
  13.     });
:

gracias, si alguien puede ayudarme o facilitarme un enlace donde esto se explique se lo agradecería.
  #2 (permalink)  
Antiguo 16/01/2018, 15:10
Avatar de Alexis88
Objetivista
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.413
Antigüedad: 6 años, 10 meses
Puntos: 926
Respuesta: enviar datos por ajax y devolver otro archivo

Si te refieres a cargar el resultado de esa consulta posterior (luego de la inserción de datos en la base de datos) en algún elemento del archivo inicial, como puede ser un <section> o <div>, puedes hacerlo de dos formas:

1. En el archivo "insertar_pelicula.php", puedes hacer la consulta posterior y presentar los datos.

Archivo "insertar_pelicula.php":
Código PHP:
Ver original
  1. /*
  2.     INSERT ...
  3. */
  4.  
  5. //Líneas más abajo
  6.  
  7. /*
  8.     SELECT ...
  9. */

Archivo en donde se realiza la petición asíncrona (AJAX):
Código Javascript:
Ver original
  1. $.post("insertar_pelicula.php", {
  2.     "titulo": $("#insertar #titulo").val(),
  3.     "director": $("#insertar #director").val(),
  4.     "fecha": $("#insertar #fecha").val(),
  5.     "idtip": $("#insertar #idtip").val()
  6. }, function (respuesta){
  7.     $("#ID_del_Div").html(respuesta);
  8. });

2. El archivo "insertar_pelicula.php" puede devolver un valor que determine si se realizó la inserción. En el archivo inicial (en donde hacer la petición asíncrona o AJAX), evalúas dicha respuesta y ahí mismo realizas una segunda petición asíncrona a otro archivo en el que realizarás dicha consulta posterior.

Archivo "insertar_pelicula.php":
Código PHP:
Ver original
  1. /*
  2.     INSERT ...
  3. */
  4.  
  5. //Líneas más abajo
  6.  
  7. /*
  8.     if ($resultado_insert){
  9.         echo 'OK';
  10.     }
  11.     else{
  12.         echo 'ERROR';
  13.     }
  14. */

Archivo en donde se realiza la petición asíncrona (AJAX):
Código Javascript:
Ver original
  1. $.post("insertar_pelicula.php", {
  2.     "titulo": $("#insertar #titulo").val(),
  3.     "director": $("#insertar #director").val(),
  4.     "fecha": $("#insertar #fecha").val(),
  5.     "idtip": $("#insertar #idtip").val()
  6. }, function (respuesta){
  7.     if (respuesta == "OK"){
  8.         $("#ID_del_Div").load("otro_archivo.php");
  9.     }
  10.     else{
  11.         alert("Se produjo un error");
  12.     }
  13. });

Incluso podrías enviar a "otro archivo.php" una lista de valores devuelta por "insertar_pelicula.php" al archivo inicial, claro, si es que así fuera necesario.

Archivo "insertar_pelicula.php":
Código PHP:
Ver original
  1. /*
  2.     INSERT ...
  3. */
  4.  
  5. //Líneas más abajo
  6.  
  7. /*
  8.     if ($resultado_insert){
  9.         echo json_encode([
  10.             'estado' => 'OK',
  11.             'variableA' => 'valorA',
  12.             'variableB' => 'valorB',
  13.             'variableC' => 'valorC'
  14.         ]);
  15.     }
  16.     else{
  17.         echo json_encode(['estado' => 'ERROR']);
  18.     }
  19. */

Archivo en donde se realiza la petición asíncrona (AJAX):
Código Javascript:
Ver original
  1. $.ajax({
  2.     url: "insertar_pelicula.php",
  3.     type: "post",
  4.     data: {
  5.         "titulo": $("#insertar #titulo").val(),
  6.         "director": $("#insertar #director").val(),
  7.         "fecha": $("#insertar #fecha").val(),
  8.         "idtip": $("#insertar #idtip").val()
  9.     },
  10.     dataType: "json"
  11. }).done(function(respuesta){
  12.     if (respuesta.estado == "OK"){
  13.         $("#ID_del_Div").load("otro_archivo.php", {
  14.             variableA: respuesta.variableA,
  15.             variableB: respuesta.variableB,
  16.             variableC: respuesta.variableC
  17.         });
  18.     }
  19.     else{
  20.         alert("Se produjo un error");
  21.     }
  22. });

Archivo "otro_archivo.php":
Código PHP:
Ver original
  1. $variableA = $_POST['variableA'];
  2. $variableB = $_POST['variableB'];
  3. $variableC = $_POST['variableC'];
  4.  
  5. //Aquí puedes realizar la consulta posterior usando las variables de arriba

__________________
«Laissez faire et laissez passer, le monde va de lui même»
  #3 (permalink)  
Antiguo 17/01/2018, 00:57
 
Fecha de Ingreso: agosto-2008
Mensajes: 601
Antigüedad: 10 años, 1 mes
Puntos: 11
Respuesta: enviar datos por ajax y devolver otro archivo

Gracias alexis 88 me acabas de dar una master class. Muy bien explicado. te felicito.

Etiquetas: ajax, devolver, fecha, javascript
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 17:25.