是什么导致我的ajax无法执行所有命令?

时间:2018-09-24 03:50:15

标签: php ajax

我的插入Ajax代码将刷新页面,但不会发出警报(“添加成功”)。数据确实回显了我仔细检查过的右键触发字ADD_OK。我没有错误。这在我看来很奇怪,因为我在添加和删除操作中使用了完全相同的ajax代码。

代码不会发出警报,但会添加到数据库中

<script type="text/javascript"> 
    $(document).on('click','#insert_btn',function (){
      $.ajax({
            type:'POST',
            url:'add.php',
             datatype: "json",
            data: {
                first_name: $("#first_name").val(),
                last_name: $("#last_name").val(),
                position: $("#position").val(),
                date: $("#date").val(),
                updated: $("#updated").val(),
            }, 
            success: function(data){ 
               if (data=='ADD_OK') {
                  //  alert(data);  
                  location.reload();
                      alert("Add Successful");
                } else {
                     //alert('something wrong');
                }
                  }
             })
        }); 
</script>

代码同时执行删除和警报 相同的删除代码将刷新页面并发出警报(“删除成功”)。是什么原因造成的?

<script type="text/javascript"> 
    $(document).on('click','.delete_btn',function (){
        if (confirm('Are you sure you want to delete this?')) {
        var id = $(this).attr("id").match(/\d+/)[0];
        var del_id = $('#example').DataTable().row( id ).data();
        var del_id = del_id[0];
        $.ajax({
            type:'POST',
            url:'delete.php',
            data: {del_id:del_id}, 
            success: function(data){ 
                if (data=='DEL_OK') {
                  location.reload();
                  alert("Delete Successful!");
                } else {
                 //    alert('something wrong');
                }
                  }
                     });
        }
        });
</script>

Add.php代码

<?php
$first_name = strtoupper($_POST['first_name']);
$last_name = strtoupper($_POST['last_name']);
$position = strtoupper($_POST['position']);
$date = $_POST['date'];
$updated = $_POST['updated'];  
   $stmt = $conn->prepare("INSERT INTO employees (first_name, last_name, position, date, updated) VALUES (?, ?, ?, ?, ?)");
   $stmt->bind_param('sssss', $first_name, $last_name, $position, $date, $updated);
   $add = $stmt->execute();

    //print_r($_POST);

   if($add) {
      echo "ADD_OK";
   }
  ?>

2 个答案:

答案 0 :(得分:1)

交换您的location.reload()alert(...)行。

仅当页面尚未开始重新加载时,警报才会运行。我想出于某些原因,在某些页面上花费的时间会更长。

答案 1 :(得分:0)

我添加了用于插入数据的代码,请尝试进行检查。另外,您可以尝试删除和更改代码。

<script type="text/javascript"> 
    $(document).on('click','#insert_btn',function (){
      $.ajax({
            type:'POST',
            url:'add.php',
             datatype: "json",
            data: {
                first_name: $("#first_name").val(),
                last_name: $("#last_name").val(),
                position: $("#position").val(),
                date: $("#date").val(),
                updated: $("#updated").val(),
            }, 
            success: function(data){ 
               if (data.success == true) {
                  //  alert(data);  
                  alert("Add Successful");
                  location.reload();
                } else {
                    alert('something wrong');
                }
                  }
             })
        }); 
</script>