Jquery 我可以将一个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,所以我决定在一个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);
        }

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

是的……这完全没问题……没什么需要检查的。控制台中有错误吗?回答是什么?你的网络选项卡是什么样子的?你确定你说的是什么吗?没有错误吗?说真的吗?既然你在这里说了:
你忘了;
-应该是
。我读了你的完整答案。
:)
所以之前你的答案是错的,你没有检查,而我检查了全部,结果就是这样。对吗?