weixin_43941237
weixin_43941237
采纳率100%
2019-04-18 09:00

for循环遍历发送太快 ajax接受不全 小萌新求大神指点一下

已采纳
function check3(){
    console.log(1);
    //var trList = $("#addTable").children("tr");
    var obj= [];
    var tb = document.getElementById("addTable");  //根据id找到这个表格
    var rows = tb.rows;               //取得这个table下的所有行
    for(var i=1;i<rows.length;i++)//循环遍历所有的tr行
    {
      var dd = [];
      for(var j=0;j<rows[i].cells.length;j++)//取得第几行下面的td个数,再次循环遍历该行下面的td元素
      {
            var cell = rows[i].cells[j];//获取某行下面的某个td元素
             dd.push(cell.innerHTML);
        }

      $.ajax({  
            type : 'POST',  
            url: '/contract/ContractManagement/insertProduct_num',
            data: {"arr":dd },
            traditional:true,
            success : function(data) {  
            }  
        });  

    }
    window.location.reload(); 

    $("#motaikuang3").modal('hide');


}
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • xinnian468153 迷路的公民 2年前

    在for循环中ajax?怕不是以后数据多了,被怼得体无完肤。另外并不是for循环导致的,而是你后面的那句

    window.location.reload() ;
    

    页面reload了,页面中未有执行完毕的ajax请求就会被强制中断,强制中断当然会导致ajax接收不全

    更新------------------------------------------------------
    随便改了一下,没测试

    function check3(){
        console.log(1);
        //var trList = $("#addTable").children("tr");
        var obj= [];
        var tb = document.getElementById("addTable");  //根据id找到这个表格
        var rows = tb.rows;               //取得这个table下的所有行
        var param = [];
        for(var i=1;i<rows.length;i++)//循环遍历所有的tr行
        {
          var dd = [];
          for(var j=0;j<rows[i].cells.length;j++)//取得第几行下面的td个数,再次循环遍历该行下面的td元素
          {
                var cell = rows[i].cells[j];//获取某行下面的某个td元素
                 dd.push(cell.innerHTML);
            }
            param.push(dd);
        }
        $.ajax({  
                type : 'POST',  
                url: '/contract/ContractManagement/insertProduct_num',
                data: param,
                traditional:true,
                success : function(data) {//成功
                    $("#motaikuang3").modal('hide');
                    window.location.reload(); 
                },
                error:function(){ //失败
                    window.location.reload(); 
                }
        });
    }
    
    点赞 1 评论 复制链接分享
  • qq_37154146 Evilloafer 2年前

    把ajax请求改为同步的就可以了,可以去了解一下同步、异步

    点赞 评论 复制链接分享
  • qq_33380252 1进击的小白 2年前

    ajax接受不全是指有些ajax请求没接收到? 加上async:false试试

    点赞 评论 复制链接分享