как избежать многократного выполнения запроса вставки - PullRequest
0 голосов
/ 17 октября 2019

Я работаю с системой OT. У меня возникли некоторые проблемы при обновлении программы запроса часов OT. Эта программа отправляет сотруднику OT часы OT в уведомлении панели администратора, а часы OT сохраняются в базе данных. Моя проблема возникает при отправке запроса OT каждыйЧеловек создает отдельное уведомление OT. Я хочу отправить единый набор уведомлений сотрудников отдела.

$(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 и после каждого цикла я пытаюсь вставить данные уведомления в database.but, если data.success успешен, но alert (temp);не получить значение как 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 Ответ

1 голос
/ 18 октября 2019
**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"});

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...