2012-04-10 42 views
37

¿Es posible hacer una solicitud de Ajax dentro de otra solicitud de AJAX? porque necesito algunos datos de la primera solicitud de ajax para realizar la siguiente solicitud de Ajax.jQuery Ajax Solicitud dentro de Ajax Solicitud

Primero estoy usando Google Maps API para obtener LAT & LNG, después de eso uso ese LAT & para solicitar la API de Instagram (ubicación basada en búsqueda).

Una vez más, ¿es esto posible y, de ser así, cómo?

$('input#search').click(function(e){ 
    e.preventDefault(); 
    var source=$('select[name=state] option:selected').text()+' '+$('select[name=city] option:selected').text()+' '+$('select[name=area] option:selected').text(); 
    var source=source.replace(/ /g, '+'); 
    if(working==false){ 
     working=true; 
     $(this).replaceWith('<span id="big_loading"></span>'); 
     $.ajax({ 
      type:'POST', 
      url:'/killtime_local/ajax/location/maps.json', 
      dataType:'json', 
      cache: false, 
      data:'via=ajax&address='+source, 
      success:function(results){ 
       // this is where i get the latlng 
      } 
     }); 
    } else { 
     alert('please, be patient!'); 
    } 
}); 
+6

Sí, es posible – Ved

+1

Podría publicar el código que tiene hasta ahora. –

+0

He editado mi pregunta, el código está por encima de –

Respuesta

57

Aquí se muestra un ejemplo:

$.ajax({ 
     type: "post", 
     url: "ajax/example.php", 
     data: 'page=' + btn_page, 
     success: function (data) { 
      var a = data; // This line shows error. 
      $.ajax({ 
       type: "post", 
       url: "example.php", 
       data: 'page=' + a, 
       success: function (data) { 

       } 
      }); 
     } 
    }); 
+0

¿Está seguro de que es la mejor práctica? Mi amigo cree que debería usar una variable de marcador y marcarla con una función setInterval fuera de – whamsicore

+1

. Esta también puede ser una solución, pero esto requiere menos esfuerzo y es mucho más fácil. – Tarek

+3

No puedo expresar lo útil que me resultó esta respuesta al intentar hacer una publicación dentro del éxito de un get. – Bruce

1

Esto es sólo un ejemplo. Es posible que desee personalizarlo según su requisito.

$.ajax({ 
     url: 'ajax/test1.html', 
     success: function(data1) { 
     alert('Request 1 was performed.'); 
     $.ajax({ 
     type: 'POST', 
     url: url, 
     data: data1, //pass data1 to second request 
     success: successHandler, // handler if second request succeeds 
     dataType: dataType 
    }); 
    } 
}); 

Para más detalles: ver this

7

probar esto

var dt=''; 
    $.ajax({ 
    type: "post", 
    url: "ajax/example.php", 
    data: 'page='+btn_page, 
    success: function(data){ 
       dt=data; 
       /*Do something*/ 
      }, 
    complete:function(){ 
      $.ajax({ 
      var a=dt; // This line shows error. 
      type: "post", 
      url: "example.php", 
      data: 'page='+a, 
      success: function(data){ 
       /*do some thing in second function*/} 
      }, 

    }); 
}); 
0
$.ajax({ 
    url: "<?php echo site_url('upToWeb/ajax_edit/')?>/" + id, 
    type: "GET", 
    dataType: "JSON", 
    success: function (data) { 
     if (data.web == 0) { 
      if (confirm('Data product upToWeb ?')) { 
       $.ajax({ 
        url: "<?php echo site_url('upToWeb/set_web/')?>/" + data.id_item, 
        type: "post", 
        dataType: "json", 
        data: {web: 1}, 
        success: function (respons) { 
         location.href = location.pathname; 
        }, 
        error: function (xhr, ajaxOptions, thrownError) { // Ketika terjadi error 
         alert(xhr.responseText); // munculkan alert 
        } 
       }); 
      } 
     } 
     else { 
      if (confirm('Data product DownFromWeb ?')) { 
       $.ajax({ 
        url: "<?php echo site_url('upToWeb/set_web/')?>/" + data.id_item, 
        type: "post", 
        dataType: "json", 
        data: {web: 0}, 
        success: function (respons) { 
         location.href = location.pathname; 
        }, 
        error: function (xhr, ajaxOptions, thrownError) { // Ketika terjadi error 
         alert(xhr.responseText); // munculkan alert 
        } 
       }); 
      } 
     } 
    }, 

    error: function (jqXHR, textStatus, errorThrown) { 
     alert('Error get data from ajax'); 
    } 

}); 
+0

solo ejemplo, que he usado ... y funciona ... –

Cuestiones relacionadas