2012-04-10 48 views
37

Có thể thực hiện yêu cầu ajax trong yêu cầu ajax khác không? vì tôi cần một số dữ liệu từ yêu cầu ajax đầu tiên để thực hiện yêu cầu ajax tiếp theo.Yêu cầu jQuery Ajax bên trong Yêu cầu Ajax

Trước tiên, tôi đang sử dụng API Google Maps để nhận LAT & LNG, sau đó tôi sử dụng LAT & LNG để yêu cầu API Instagram (vị trí dựa trên tìm kiếm).

Một lần nữa, điều này có thể thực hiện được không và nếu có thì làm cách nào?

$('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

Có nó có thể – Ved

+1

bạn có thể post đoạn code bạn có cho đến nay. –

+0

Tôi đã chỉnh sửa câu hỏi của mình, mã ở trên –

Trả lời

57

Dưới đây là một ví dụ:

$.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

Bạn có chắc đó là phương pháp hay nhất không? Bạn tôi nghĩ rằng tôi nên sử dụng một biến cờ và kiểm tra nó với một hàm setInterval bên ngoài – whamsicore

+1

Đây có thể là một giải pháp, nhưng điều này liên quan đến nỗ lực ít hơn và dễ dàng hơn nhiều. – Tarek

+3

Tôi không thể diễn tả câu trả lời này hữu ích như thế nào đối với tôi trong việc cố gắng làm một bài đăng bên trong thành công của việc có được. – Bruce

1

Đây chỉ là một ví dụ. Bạn có thể tùy chỉnh nó theo yêu cầu của bạn.

$.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 
    }); 
    } 
}); 

Để biết thêm chi tiết: xem this

7

thử này

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

chỉ là ví dụ, mà tôi đã sử dụng ... và hoạt động ... –

Các vấn đề liên quan