在一个onclick中使用不同的div进行两次ajax调用

时间:2015-10-07 02:15:45

标签: javascript php jquery mysql ajax

我遇到了让第二个ajax调用工作的问题。这是我的代码:

function putThis(control){
var getid = control.innerText;
var first = $("#from[name=from]").val();
var second = $("#to[name=to]").val();

$.ajax({
    type:'POST',
    url: 'testtable.php',
    data: {id: getid,from: first,to: second},
    cache: false,
    global: false,
    success:function(data)
    {
    $("#result").empty();
    $("#result").append(data);
    //alert("Success: " + getid + " " + first + " to " + second);
    }
});
$.ajax({
    type: 'POST',
    url: 'subtable.php',
    data:{uid: getid,start: first,end: second},
    cache: false,
    global: false,
    success : function(data)
    {
        $("#subtable").empty();
        $("#subtable").append(data);
    }
});
}

他们还有不同的网址和不同的div作为返回值。提前谢谢。

2 个答案:

答案 0 :(得分:4)

尝试这样的事情

$.when( 
   $.ajax({
    url: 'testtable.php',
    type: 'post',
    data: {id: getid,from: first,to: second}
   }),

   $.ajax({
      url: 'subtable.php',
      type: 'post',
      data: {uid: getid,start: first,end: second}
   })
 ).done(function( data1, data2) {
  // data1 and data2 are arguments resolved for the testtable.php and subtable.php' ajax requests, respectively.
  // Each argument is an array with the following structure: [ data, statusText, jqXHR ]

   $("#result").empty();
   $("#result").append(data1);

    $("#subtable").empty();
    $("#subtable").append(data2);
});

只需浏览此链接https://api.jquery.com/jquery.when/

即可

答案 1 :(得分:1)

如果你的第二个ajax调用是第一个ajax调用,那么你必须在某个变量中存储第二个ajax调用的结果(如果它恰好先到达)(设置一个"状态&#34 ;变量,以确定它是第一个还是第二个,相应地做出反应)或者在"完成"内推送第二个ajax调用。父母ajax电话。

页面的复杂性将决定您的要求。此类问题可以通过此页面上的the accepted answer解决。