多个Ajax调用

时间:2013-07-30 15:06:32

标签: jquery ajax

我有一个关于300个字段的员工属性的巨大表格。

当管理员想要编辑员工属性时,他们会转到编辑页面。此表单是从数据库中动态打印的。

用户从下拉列表中选择一名员工,然后将其称为dropdown1。然后使用绑定到dropdown1的change事件的jquery ajax调用从JSON数组填充表单。这样就可以正确填充299个字段。

但是,该表单还包含2个下拉列表。让我们称之为dropdown2和dropdown3。

从数据库加载页面时填充Dropdown2。

Dropdown3与dropdown2有关。当dropdown2更改时,dropdown3的列表会使用不同的onchange ajax函数进行更改。最初,在页面加载下拉列表3只有一个列表“选择”。

我的问题是当dropdown1更改时,表单中的每个字段都会填充,但下拉列表3除外。

我想要的是,当使用jquery ajax调用在dropdown2中更改选择时,

  1. dropdown3应根据dropdown2中的值进行填充 - 基本上包含dropdown2的div的html应该更改( 另一个ajax调用中的ajax调用?

  2. 应在dropdown2中选择正确的值(如果1有效,我认为我可以处理此部分)

  3. 如果我的问题非常冗长而且我无法正确解释,我会道歉。

        $(document).ready(function(){
        $("#adminobj0zb").delegate("#sel10", "change", function(e){
            $.getJSON("editempajax2.php?empid=" + $("#sel10").val(),
            function(data){
                $.each(data, function(i, item){
                    if(item.field == "fname"){
                        $("#sel2").val(item.value);
                        //Here Make Second Ajax call and change content of div containing sel3 ... how ?
                    }
                    if(item.field == "mname"){
                        $("#sel3").val(item.value);
                    }
                });
            });
        });
    });
    

1 个答案:

答案 0 :(得分:1)

这是可能的。您可以在第一次调用时将AJAX调用作为回调。

$.ajax({
    url:"/echo/json/",
    data:xdata,
    type:"POST",
    success: function(data) {
        $.ajax({
            // config
            success: function(data2) {}; // do your stuff
        });
    }
});

如果您同时需要多个AJAX调用,则可以使用延迟对象:jQuery Deferred - getting result of chained ajax calls