在AJAX成功调用中保存变量以传递另一个AJAX成功调用

时间:2019-07-10 02:41:51

标签: javascript jquery ajax

通过jQuery,AJAX和PHP创建“刷新”按钮。

我要控制两个DOM实例(div)-#sold-container,还有#totalorderswidget

$(document).ready(function() {
    $(function() {
        $('#orderfeed').on('click', function() {
            var orders;
            $.ajax({
                type: 'POST',
                url: 'liveorderwidget.php',
                beforeSend: function() {
                    $('#sold-container').html('<div class="page-loader"></div>');
                    $.ajax({
                        url: "totalorderswidget.php",
                        beforeSend: function() {
                            $('#totalorderswidget').html('<div class="page-loader"></div>');
                        },
                        success: function(orderdata) {
                            // $('#totalorderswidget').html(orderdata);
                            orders = orderdata;
                        }
                    });
                },
                success: function(solddata) {
                    $('#sold-container').html(solddata);
                    $('#totalorderswidget').html(orders);
                }
            })
        });
    });
});

我不喜欢每个DIV在不同时间更新和显示page-loader CSS的方式,所以我想我会尝试抓住要传递的数据并同时显示它们(获取数据)。在第一个ajax调用中,在第二个上都显示)。

这就像两个普通的AJAX调用一样,每个调用都将成功html附加到每个id上。 (取消对// $('#totalorderswidget').html(orderdata);的评论),

但是在函数外部初始化变量var orders;并尝试将数据放入成功调用(orders = orderdata;)中是无效的。

在第一个AJAX成功调用(console.log)上执行orderdata会返回预期的响应,但是尝试在第二个AJAX调用($('#totalorderswidget').html(orders);)中使用它却无法正常工作, console.log带回undefined作为order变量。

要从第一个成功调用函数中获取数据并将数据带入第二个/最终ajax成功调用中,我必须更改什么?

0 个答案:

没有答案