【问题标题】:Not able to make multiple ajax calls inside one script无法在一个脚本中进行多个 ajax 调用
【发布时间】:2016-04-12 20:05:53
【问题描述】:

我是否有一个基于下拉列表自动填充所有字段的 ajax 调用。然后我需要在单击更新按钮时调用第二个 ajax 函数。但是当我保持多个 ajax 调用时,没有一个调用有效。请帮忙。

    <script>
    $(document).ready(function(){
        var selected;
        //alert('jquery works');
        $('#selectUsers').change(function(){
            selected = $('#selectUsers').val();
            //alert($('#selectUsers').val());
              $.ajax({
                url: "CustServlet2",
                type: "Post",
                data: {"selectUsers":selected},
                success : function(data)
                    {
                        //alert("Returned data"+ data);
                        var myarr = data.split(" ");
                        $('#cid').val(myarr[0]);
                        $('#csn').val(myarr[2]);
                        $('#req').val(myarr[3]);
                        $('#loc').val(myarr[4]);
                        $('#dtid').val(myarr[5]);
                        $('#dt').val(myarr[6]);
                        $('#dltid').val(myarr[7]);
                        $('#dltn').val(myarr[8]);
                        $('#dpo').val(myarr[9]);
                        $('#dao').val(myarr[10]);
                        $('#rbid').val(myarr[11]);
                        $('#rbn').val(myarr[12]);
                        $('#prid').val(myarr[13]);
                        $('#prn').val(myarr[14]);
                        $('#sid').val(myarr[15]);
                        $('#sn').val(myarr[16]);
                        $('#comments').val(myarr[17]);
                        $('#cci').val(myarr[18]);
                        $('#aci').val(myarr[19]);


                    }
                });
        });
         $("#submit").click(function(){
            //e.preventDefault();
            alert("submit alert");
            var cn1= $('#selectUsers').val();
            var csn1= $('#csn').val();
            var req1= $('#req').val();
            var loc1= $('#loc').val();
            var dltid1= $('#dltid').val();
            var dtid1= $('#dtid').val();
            var rbid1= $('#rbid').val();
            var prid1= $('#prid').val();
            var cci1= $('#cci').val();
            var aci1= $('#aci').val();
            var dpo1= $('#dpo').val();
            var dao1= $('#dao').val();
            var sid1= $('#sid').val();

            alert();
               $.ajax({             

                 url: "CustServlet3",
                type: "Post",
                data: {"selectUsers":cn1 "csn":csn1 "req":req1 "loc":loc1 "dltid":dltid1 "dtid":dtid1 "rbid":rbid1 "prid":prid1 "cci":cci1 "aci":aci1 "dpo":dpo1 "dao":dao1 "sid":sid1},
                success : function(data)
                    {
                    if(data.equals(1)){alert("profile updated successfully !!")}
                    if(data.equals(0)){alert("profile not updated !!")}
                    }//for success 

                });//for ajax2  
        });//for click   
    });


 </script>

【问题讨论】:

  • 不工作是什么意思>?
  • 您是否在控制台中遇到任何错误
  • 删除 ajax 中的警报
  • 我没有收到任何错误消息。自动填充函数 wch 应该与 ist ajax 调用一起工作没有发生。也没有来自提交按钮的响应应该与第二次通话一起使用。
  • @saravanann 好的!!!!当我删除 ajax 中的警报时,部分输出来了。

标签: javascript jquery ajax jsp


【解决方案1】:

防止默认点击,以便您的 ajax 可以完成并从 ajax 正文中删除警报

 $("#submit").click(function(e){
            e.preventDefault();
            statname = $('#sn').val();
            alert("statname" +statname);
               $.ajax({             
                 url: "CustServlet3",
                type: "Post",
                data: {sn:statname},
                success : function(data)
                    {
                    if(data.equals(1)){alert("profile updated successfully !!")}
                    if(data.equals(0)){alert("profile not updated !!")}
                    }//for success 

                });//for ajax2  
        });//for click  
    });

【讨论】:

  • 感谢您的回答。我进行了更改,删除了警报。那时我有一个类型不匹配的错误。我现在在数据库中添加了表的所有字段。在我只添加一个字段之前,因此发生了类型不匹配。所以现在我更正了字段数量并删除了警报。但我仍然有同样的问题。两个脚本都没有加载..
【解决方案2】:

您需要从 ajax 选项中删除警报

$("#submit").click(function(){
        alert("submit alert"); 
        statname = $('#sn').val();
        alert("statname" +statname);
           $.ajax({             
            alert("ajax working alert"); // Remove this alert from here you cant add alert in between of ajax Options as its Json Object 
             url: "CustServlet3",
            type: "Post",
            data: {"sn":statname},
            success : function(data)
                {
                if(data.equals(1)){alert("profile updated successfully !!")}
                if(data.equals(0)){alert("profile not updated !!")}
                }//for success 

            });//for ajax2  
    });

【讨论】:

  • 我看到您发布的json无效{"selectUsers":cn1 "csn":csn1 "req":req1 "loc":loc1 "dltid":dltid1 "dtid":dtid1 "rbid":rbid1 "prid":prid1 "cci":cci1 "aci":aci1 "dpo":dpo1 "dao":dao1 "sid":sid1}需要在{"selectUsers":cn1 ,"csn":csn1, "req":req1 ,"loc":loc1, "dltid":dltid1 ,"dtid":dtid1 ,"rbid":rbid1, "prid":prid1, "cci":cci1, "aci":aci1, "dpo":dpo1 ,"dao":dao1, "sid":sid1}之间添加逗号
  • 好的,感谢您的更正。我尝试运行代码,即使两个 ajax 函数都没有响应
  • 对不起,我错过了一个逗号。终于输出来了。非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-12
  • 2018-02-06
  • 1970-01-01
  • 2016-03-01
  • 1970-01-01
相关资源
最近更新 更多