Jquery 我可以将一个AJAX请求放入另一个AJAX请求中吗?
我试图以一种模式显示数据库中不同表的数据。因为不可能在一个AJAX请求中发送两个url,所以我决定在一个AJAX请求中发送另一个AJAX请求。这是我的密码:Jquery 我可以将一个AJAX请求放入另一个AJAX请求中吗?,jquery,ajax,Jquery,Ajax,我试图以一种模式显示数据库中不同表的数据。因为不可能在一个AJAX请求中发送两个url,所以我决定在一个AJAX请求中发送另一个AJAX请求。这是我的密码: $.ajax({ url:"getEvent.php", method: "GET", data:{ cid:event_id }, dataType: "json", success:function(retval){
$.ajax({
url:"getEvent.php",
method: "GET",
data:{
cid:event_id
},
dataType: "json",
success:function(retval){
$("#event_img").html("");
$("#event_title").html("");
$("#event_description").html("");
$("#event_start").html("");
$("#event_material_req").html("");
$("#event_occupation").html("");
$.ajax({
url: "getOccupation.php",
method: "GET",
data:{
cid:event_id
},
dataType: "json"
success: function(retval){
for(i=0; i<retval.length; i++){
event_occupation = retval[i].noVolunteers;
event_occupation += retval[i].occupationName;
}
$("#event_occupation").append(event_occupation);
}
});
event_img = "../admin/eventImages/"+retval[0].event_img;
event_id = retval[0].event_id;
event_name = retval[0].event_name;
event_description = retval[0].event_description;
event_location = retval[0].event_location;
event_start = moment().format('MMMM Do YYYY, h:mm a', retval[0].event_start);
event_material_req = retval[0].event_material_req;
$("#event_img").attr("src", event_img);
$("#event_title").append(event_name);
$("#event_description").append(event_description);
$("#event_start").append(event_start);
$("#event_material_req").append(event_material_req);
$("#readmore").modal("show");
publishToPast(event_id);
}
});
$.ajax({
url:“getEvent.php”,
方法:“获取”,
数据:{
cid:事件id
},
数据类型:“json”,
成功:函数(retval){
$(“#event_img”).html(“”);
$(“#事件标题”).html(“”);
$(“#事件描述”).html(“”);
$(“#事件_开始”).html(“”);
$(“#事件材料要求”).html(“”);
$(“#事件#职业”).html(“”);
$.ajax({
url:“getOccupation.php”,
方法:“获取”,
数据:{
cid:事件id
},
数据类型:“json”
成功:函数(retval){
对于(i=0;i我看不出您的代码中有任何问题。但我也无法理解:)
在这两个ajax调用之前有事件id
,那么为什么需要将第二个ajax放在第一个ajax中呢
因为我认为您可能需要第二次调用中第一次调用的结果(但第二次调用没有使用任何结果),所以让我们认为您希望同步显示一些数据。首先获取第一次调用并显示它,然后获取第二次调用并显示其他内容
好的。这里的要点是,在两个调用中,回调值都是retval
然后你把所有的用户界面代码放在第二次调用之外。我是说这部分
event_img = "../admin/eventImages/"+retval[0].event_img;
event_id = retval[0].event_id;
event_name = retval[0].event_name;
event_description = retval[0].event_description;
event_location = retval[0].event_location;
event_start = moment().format('MMMM Do YYYY, h:mm a', retval[0].event_start);
event_material_req = retval[0].event_material_req;
$("#event_img").attr("src", event_img);
$("#event_title").append(event_name);
$("#event_description").append(event_description);
$("#event_start").append(event_start);
$("#event_material_req").append(event_material_req);
$("#readmore").modal("show");
publishToPast(event_id);
因此,它不尊重您在第二次调用中的成功回调,只在调用1成功调用时才在它结束之前显示它
另一件事是在第二次调用中出现语法错误
url: "getOccupation.php",
method: "GET",
data:{
cid:event_id
},
dataType: "json"
success: function(retval){
你忘记了在“json”后面有一个,
,应该是这样的
url: "getOccupation.php",
method: "GET",
data:{
cid:event_id
},
dataType: "json",
success: function(retval){
是的……这完全没问题……没什么需要检查的。控制台中有错误吗?回答是什么?你的网络选项卡是什么样子的?你确定你说的是什么吗?没有错误吗?说真的吗?既然你在这里说了:你忘了;
-应该是,
。我读了你的完整答案。:)
所以之前你的答案是错的,你没有检查,而我检查了全部,结果就是这样。对吗?