Javascript 如何避免多次执行插入查询

Javascript 如何避免多次执行插入查询,javascript,php,jquery,Javascript,Php,Jquery,我正在使用加班系统。我在重新编写加班时间请求程序时遇到一些问题。此程序将部门员工加班时间发送到管理面板通知,并将加班时间保存在数据库中。我的问题是发送加班请求时,每个人都创建单独的加班通知。我希望发送部门的单个通知集人们 $(document).on('click', '.overtime_send', function() { temp = 0; $('#employee_table tbody tr').each(function(row, tr) { var emp_n

我正在使用加班系统。我在重新编写加班时间请求程序时遇到一些问题。此程序将部门员工加班时间发送到管理面板通知,并将加班时间保存在数据库中。我的问题是发送加班请求时,每个人都创建单独的加班通知。我希望发送部门的单个通知集人们

$(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);//if data.success block execute but alert still get value as 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();
        }
      }
    });
}  
我已经准备好了一些解决方案。我成功地创建了temp变量和OT请求过程,它分配了temp=1,并且在每个循环之后,我尝试将通知数据插入数据库。但是如果data.success成功,但是alerttemp;不获取值为1。如何解决此问题

后端代码

if($_POST["action"] == 'add_ot')
      { 
        $today = date("Y-m-d");
        $department = $_SESSION["dept_Id"];
        $state = 5 ;
        $emp_no = $_POST["emp_no"];
        $ot_hours = $_POST["ot_hours"];

        if($ot_hours != '00:00'){

        $data = array(
          ':today'                =>  $today,
          ':department'           =>  $department,
          ':emp_no'               =>  $emp_no,
          ':ot_hours'             =>  $ot_hours,
          ':state'                =>  $state

        );
        $query = "
        INSERT INTO otresquest 
        (emp_id,date,ot_hour,dept_Id,overtime_status) 
        VALUES (:emp_no, :today, :ot_hours,:department,:state)
        ";
        $statement = $connect->prepare($query);
        if($statement->execute($data))
        {
          $output = array(
            'success'   =>  'OT request has been Sent succesfully',
          );
        }
      }
        echo json_encode($output);
      }

  if($_POST["action"] == 'add_comment')
      { 
        $today = date("Y-m-d");
        $department = $_SESSION["dept_Id"];
        $comment_status = 0 ;

        $data = array(
          ':today'                =>  $today,
          ':department'           =>  $department,
          ':state'                =>  $comment_status

        );
        $query = "
        INSERT INTO comments 
        (dept_Id,date,comment_status) 
        VALUES (:department,:today,:state)
        ";
        $statement = $connect->prepare($query);
        $statement->execute($data);
    }

更换温度=1;使用temp++;不工作bro仍然警告get 0您得到的值为0,因为ajax请求需要时间来执行。您的警报在我如何处理此案例之前触发?是否有其他方法执行此任务?如果条件也无效?这就是我尝试获取值的原因
**This might be solve your problem**

(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"});

});