在第三次Ajax Success之后重启整个ajax脚本?

时间:2015-04-30 13:25:47

标签: ajax

我一直在寻找这方面的例子,但没有找到任何能给我理解答案的东西。

这是我的逻辑:

  1. AJAX A执行
  2. 关于AJAX成功AJAX B执行
  3. 关于AJAX B成功AJAX A执行
  4. 这可能吗?

    这是我目前的ajax请求:

    $(document).ready(function(){
    
            $('.date-picker').change(function(){
                $.ajax({
                     type: 'POST',
                     url: 'php/getproduct.php',
                     data: {dateorderpicker: $('.date-picker').val()},
                     dataType: 'JSON',
                     success: function(data)
                     {
                        $("#cartrow").html(data.result_1);
                        $("#otheritems").html(data.result_2);
                        $(document).ready(function(){    
                            $(".additem-form").on("submit",function(event){
                               event.preventDefault();
                                $.ajax({
                                     type: "POST",
                                     url: "php/additem.php",
                                     data: {
                                              orderdate: $(this).find(".orderdate").val(),
                                              itemName: $(".itemName").val(), 
                                              pricetotal: $(".price").val(), 
                                              description: $(".description").val(),
                                              qty: $(this).find(".qtyitem").val()
                                     },
                                     success: function(data)
                                     {
                                        $.ajax({
                                                type: 'POST',
                                                url: 'php/refreshproduct.php',
                                                data: {dateorderpicker: $('.date-picker').val()},
                                                dataType: 'JSON',
                                                success: function(data)
                                                {
                                                    $("#cartrow").html(data.result_1);
                                                    $("#otheritems").html(data.result_2);
                                                }
                                        });
                                     }
                                });
                            });
                        });
                        $('.orderdate').val($('.date-picker').val());
    
                        $("input[name=action]").click(function(){
                            event.preventDefault(); 
                            $.ajax({
                                     type: "POST",
                                     url: "php/edit.php",
                                     data: {
                                              itemid: $("input[name=itemid]").val(),
                                              itemqty: $("input[name=itemqty]").val(),
                                              action: $(this).val()
                                     },
                                     success: function(data)
                                     {
                                        $.ajax({
                                                type: 'POST',
                                                url: 'php/refreshproduct.php',
                                                data: {dateorderpicker: $('.date-picker').val()},
                                                dataType: 'JSON',
                                                success: function(data)
                                                {
                                                    $("#cartrow").html(data.result_1);
                                                    $("#otheritems").html(data.result_2);
                                                }
                                        });
                                     }
                                });
                        });
                     }
                 });
             });
     });
    

    如果您对语法有任何建议,我对AJAX非常陌生,请随时给我建议:)

    干杯

1 个答案:

答案 0 :(得分:0)

我会简化问题。你有两个事件:A和B.让我们假设,你有executeAexecuteB的函数,它们处理各自的ajaxes,如下所示:

function successA(response) {
    executeB(response);
}

function successB(response) {
    executeA(response);
}

现在,在executeA中,第一个ajax正在执行,而executeB正在执行第二个ajax。您需要确保成功函数分别映射到successAsuccessB

此外,您必须确保单独拨打executeA以发出呼叫循环。