我的问题是,当我在删除确认上按yes时,数据库记录消失了,但是如果刷新页面,它将返回。
也许我必须将语言和ID放在Ajax URL中?
如果可以,我该怎么做?
请原谅我我还在学习。
这是我来自 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();
});
});
答案 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();
});