我试图在一个模态中将数据显示到数据库中的不同表。由于在一个AJAX请求中无法发送两个url,我决定在AJAX请求中发送另一个AJAX请求。这是我的代码:
$.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);
}
});
我知道我没有做对,因为我唯一可以检索的是来自getEvent.php
答案 0 :(得分:0)
我的代码中没有任何问题。但我也无法理解:)
在这两个ajax调用之前你有event_id
。那你为什么要把你的第二个ajax放在第一个?
因为我认为您可能需要第二次通话中第一次通话的结果。 (但是你没有使用任何结果进行第二次调用)所以我们只想让你想同步显示一些数据。首先获得第一个电话并显示它然后接到第二个电话并显示其他信息。
确定。这里的要点是在两次调用中都将回调值设为retval
。
然后您将所有UI代码放在第二个调用之外。我的意思是这部分
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){