首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ajax data.success代码块未执行(变量值)

ajax data.success代码块未执行(变量值)
EN

Stack Overflow用户
提问于 2019-10-18 11:27:34
回答 3查看 39关注 0票数 3

我有一个很大的问题,在重新评分ajax请求.if的ajax请求成功,我想设置变量的值为1,如果不成功,它保留为0 .but我的程序不能正常工作,.what是问题,如何解决是问题?

代码语言:javascript
复制
$(document).on('click', '.overtime_send', function() {
   temp = 0;
  $('#employee_table tbody tr').each(function(row, tr) {

    var emp_no = $(tr).find('td:eq(0)').text();
    var ot_hours = $(tr).find('input').val();

    //ot_array.push([emp_no,ot_hours]);

    $.ajax({
      url: 'otrequset_action.php',
      type: 'POST',
      data: { action:'add_ot',emp_no : emp_no, ot_hours:ot_hours},
      dataType:"json",
      success:function(data)
      {
        if(data.success)
        {
         swal("Good job!", "OverTime Request Send Successfully!", "success");
         temp = 1;
         dataTable.ajax.reload();  
        }
      }
    });  
  });
  alert(temp);//data.success alert display but value is still 0  
  if (temp == 1) {
$.ajax({
      url: 'otrequset_action.php',
      type: 'POST',
      data: { action:'add_comment'},
      dataType:"json",
      success:function(data)
      {
        if(data.success)
        {  
         dataTable.ajax.reload();
        }
      }
    });
}
     swal({title: "No data entering?",text: "Not set the overtime hours !",type: "warning"});

}); 
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-10-18 12:05:53

代码语言:javascript
复制
(document).on('click', '.overtime_send', function() {
   temp = 0;
  $('#employee_table tbody tr').each(function(row, tr) {

    var emp_no = $(tr).find('td:eq(0)').text();
    var ot_hours = $(tr).find('input').val();

    //ot_array.push([emp_no,ot_hours]);

    $.ajax({
      url: 'otrequset_action.php',
      type: 'POST',
      data: { action:'add_ot',emp_no : emp_no, ot_hours:ot_hours},
      dataType:"json",
      success:function(data)
      {
         swal("Good job!", "OverTime Request Send Successfully!", "success");
         temp++;
         dataTable.ajax.reload();
           if (temp == 1) {
           $.ajax({
              url: 'otrequset_action.php',
              type: 'POST',
              data: { action:'add_comment'},
              dataType:"json",
              success:function(data)
              {
                if(data.success)
                {  
                 dataTable.ajax.reload();
              }
             }
          });
        }  
    }
   });  
});

   swal({title: "No data entering?",text: "Not set the overtime hours !",type: "warning"});

});
票数 2
EN

Stack Overflow用户

发布于 2019-10-18 11:44:46

在第一个ajax请求的成功函数中,data.success if条件的作用是什么。你是在php代码中设置它,然后返回吗?

代码语言:javascript
复制
success:function(data)
      {
        if(data.success)
        {
         swal("Good job!", "OverTime Request Send Successfully!", "success");
         temp = 1;
         dataTable.ajax.reload();  
        }
      }

我不认为你需要那个if条件。删除该条件,然后尝试。

此外,创建一个错误函数来处理不成功的情况。

票数 0
EN

Stack Overflow用户

发布于 2019-10-18 11:50:33

代码语言:javascript
复制
$(document).on('click', '.overtime_send', function() {
    temp = 0;
    $('#employee_table tbody tr').each(function(row, tr) {
        var emp_no = $(tr).find('td:eq(0)').text();
        var ot_hours = $(tr).find('input').val();

        $.ajax({
            url: 'otrequset_action.php',
            type: 'POST',
            data: { action:'add_ot',emp_no : emp_no, ot_hours:ot_hours},
            dataType:"json",
            success:function(data) {
                if(data.success) {
                    swal("Good job!", "OverTime Request Send Successfully!", "success");

                    if (temp != 1) {
                        $.ajax({
                            url: 'otrequset_action.php',
                            type: 'POST',
                            data: { action:'add_comment'},
                            dataType:"json",
                            success:function(data) {
                                if(data.success) {
                                    dataTable.ajax.reload();
                                }
                            }
                        });
                    }

                    temp = 1;
                    dataTable.ajax.reload();
                }
            }
        });
  });

  swal({title: "No data entering?",text: "Not set the overtime hours !",type: "warning"});
});

Ajax只有在请求成功时才会执行成功函数(即延迟一段时间后才会执行成功)。但是,即使ajax不完整(异步执行),剩余的代码也会运行。当你打印或使用它的时候,它仍然是0;

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58443528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档