使用jQuery、AJAX、PHP删除数据库中的行



编辑:

根据以下注释中提供的解决方案

数据库中没有发生任何事情
解决方案是简单地刷新页面,因为我以前在另一个目录中有delete.php文件(所以代码运行得很好……这只是身份错误的情况——这总是最微不足道的事情(。

页面上没有发生任何事情
解决方案是将<div>一个唯一的id(与删除按钮/image-1相同(,然后在我的jQuery.js文件中的ajax函数下添加。。。

success: function() {
$('#'.concat(id)).remove();
}

感谢@SikanderNawaz

结束编辑

我正试图通过使用jQuery、AJAX和PHP删除数据库中的一行,我的代码应该是,但不起作用
我单击了删除按钮,但在页面或数据库中什么也没发生

我哪里错了
希望这里有人能帮忙。

数据库

------------------
| id | link      |
------------------
| 1  | image.jpg |
------------------

HTML

<head>
...
<script src="jquery-3.4.1.js"></script>
...
</head>
<body>
...
<button type="button" name="delete" id="delete" class="some stylings" value="1"><h6><b>X</b></h6></button>
<img src="images/image.jpg" />
...
<script src="jQuery.js"></script>
</body>

jQuery.js

$(document).ready(function(){
$('button#delete').click(function(){
var id = $(this).val(); // tested and returns 1 (see button value)

$.ajax({
url: 'delete.php',
type: 'post',
data: { id: id },
success: function() {
$('#'.concat(id)).remove();
}
});
});
})

删除.php

<?php

require ("connection.php");

if (isset($_POST['id'])) {

$id = $_POST['id'];

try {

$sql = 
"
DELETE FROM test

WHERE
id = ?
";

$prepareTest = $pdo->prepare($sql);
$prepareTest->execute([$id]);

} catch(PDOException $e) {

file_put_contents('../error/e.txt', $e->getMessage(), FILE_APPEND);

}

}

使用JS/Ajax时,请始终使用console.log记录数据和错误,并在"网络"选项卡中发现错误以及任何与数据库相关的错误,并使用在的每个步骤转储的数据来管理调试,以发现错误的来源。

最新更新