我遇到了让第二个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作为返回值。提前谢谢。
答案 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);
});
即可
答案 1 :(得分:1)
如果你的第二个ajax调用是第一个ajax调用,那么你必须在某个变量中存储第二个ajax调用的结果(如果它恰好先到达)(设置一个"状态&#34 ;变量,以确定它是第一个还是第二个,相应地做出反应)或者在"完成"内推送第二个ajax调用。父母ajax电话。
页面的复杂性将决定您的要求。此类问题可以通过此页面上的the accepted answer解决。