使用jQuery AJAX删除记录之前的确认警报不起作用

时间:2018-07-28 08:38:26

标签: javascript jquery ajax

我的问题是,当我在删除确认上按yes时,数据库记录消失了,但是如果刷新页面,它将返回。

也许我必须将语言和ID放在Ajax URL中?

如果可以,我该怎么做?

请原谅我我还在学习。

enter image description here

这是我来自 delete_table.php

的代码

PS:这是网站上删除按钮的方式,例如: delete_table.php?lang = en&id = 149

       if (isset($_GET['id']) && is_numeric($_GET['id']))
      {

       $id = $_GET['id'];


      if ($stmt = $conn->prepare("DELETE FROM `articles_".LANG."` WHERE id = 
      ? LIMIT 1"))
      {
     $stmt->bind_param("i",$id);
     $stmt->execute();
     $stmt->close();
      }
      else
      {
    echo "ERROR: could not prepare SQL statement.";
      }

这是 index.php 中的删除按钮。

<td><a class='delete' id='del_".$row->id."' href='delete_table.php?lang=".LANG."&id=" . $row->id . "'>Delete</a></td>

这是jquery和ajax所在的 delete.js

$(document).ready(function() {
// Delete 
$('.delete').click(function(event) {
    var el = this;
    var id = this.id;
    var splitid = id.split("_");

    // Delete id
    var deleteid = splitid[1];

    // Confirm box
    bootbox.confirm("Are you sure want to delete this article?",
        function(result) {

            if (result) {
                // AJAX Request
                $.ajax({
                    url: 'delete_table.php',
                    type: 'POST',
                    data: { id: deleteid },
                    success: function(response) {

                        // Removing row from HTML Table
                        $(el).closest('tr').css('background', 'tomato');
                        $(el).closest('tr').fadeOut(800, function() {
                            $(this).remove();
                        });

                    }
                });
            }
            console.log('delete_table.php');
        });
    event.preventDefault();
  });
});

3 个答案:

答案 0 :(得分:0)

这就是您要寻找的

function confirmDelete() {
    if (confirm("Delete Record?") == true) {
        alert("Now deleting");
        return true;
    } else {
        alert("Cancelled by user");
        return false;
    }
}
<td><a class='delete' id='del_".$row->id."' href='delete_table.php?lang=".LANG."&id=" . $row->id . "' onclick="return confirmDelete()">Delete</a></td>

答案 1 :(得分:0)

确认方法不接受函数作为第二个参数。 如果用户单击“确定”,confirm()方法将返回true,否则返回false。因此,将结果保存在变量中并基于该fire ajax或不执行任何操作。

var result = confirm('Are you sure?');
if(result) {
    // fire ajax
}

答案 2 :(得分:0)

添加 if(response ==1) 然后从 HTML 中删除行

                    // Removing row from HTML Table

                    $(el).closest('tr').css('background', 'tomato');
                    $(el).closest('tr').fadeOut(800, function() {
                        $(this).remove();
                    });