我想通过自己的管理页面删除数据库中的对象。它的工作方式很简单:当我单击与对象对应的行中的删除按钮时,JS代码将获取" id"对象的属性并将其传递给PHP以执行sql删除查询。虽然控制台没有显示任何内容,但我的代码并没有起作用。你介意看一下我的代码并找出它的错误吗?我使用PHP 7.包含所有必需的库。非常感谢你!
以下是我的代码:
HTML:
<table>
<thead>
<th>ID</th>
<th>Name</th>
</thead>
<tbody>
<?php
include("../connect.php");
$sql = "select * from tbl";
$query = mysqli_query($connect,$sql);
while($data = mysqli_fetch_assoc($query)) {
?>
<tr>
<td class="data-id">
<?php echo $data['id'] ?>
</td>
<td>
<?php echo $data['name'] ?>
</td>
<td>
<img src="delete.png" class="delete-button">
</td>
</tr>
<?php } ?>
</tbody>
</table>
JS:
$(document).ready(function() {
$('.delete-button').click(function() {
var id = $(this).parent().siblings('.data-id').text();
$.ajax({
type: 'post',
url: 'http://localhost/myproject/delete.php',
data: {
"id":id
}
});
});
});
PHP delete.php
<?php
include("../connect.php");
if(isset($_POST["id"])) {
$id = $_POST["id"];
$sql = "delete from tbl where id=".$id;
$query = mysqli_query($connect,$sql);
}
?>
PHP connect.php
<?php
$connect = new mysqli("localhost","root","","db");
mysqli_set_charset($connect,'utf8');
?>
答案 0 :(得分:2)
您的删除查询语法错误。它应该如下,
$sql = "delete from tbl where id=".$id;
从查询中删除“*”
更新:您的代码中还有2个错误。希望这些更正可能会解决您的问题
问题1:由于您在TD中将文本作为id发送,因此它会沿着HTML中的空格发送id。所以削减你的价值。这是您的查询,
$sql = "delete from tbl where id=".trim($id);
问题2:这可能是拼写错误。 “$ connnect”变量应该是connect.php文件中的“$ connect”。
答案 1 :(得分:0)
似乎$(this).parent().siblings('data-id').text();
应为$(this).parent().siblings('.data-id').text();
缺少班级名称中的点(。)。
答案 2 :(得分:0)
在你的实际代码中,请``for reserved mysql name
更改为以下代码:
$sql = "DELETE FROM `tbl` WHERE `id`='$id'";