我试图通过<li id='{$row['id']}'>
删除它有效但无法从mysql删除记录只删除它前端。是否可以通过attr
定义ID来删除?这是我目前的代码:
PHP,(可以正常工作并删除多个字段)
$id = (int) $_GET['id'];
$sql = "DELETE FROM img_nav WHERE id = :id";
$sql = "DELETE FROM img_landing WHERE id = :id";
$sql = "DELETE FROM img_slider WHERE id = :id";
$stmt = $db->prepare($sql);
$stmt->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
$stmt->execute();
我的jQuery / Ajax
jQuery(document).ready(function(){
$(".deleteitem").click(function(){
var parent = $(this).closest('li');
var id = parent.attr('id');
$.ajax({
type: "POST",
data: "id=" +id,
URL: "delete.php",
success: function(){
$('#'+id).remove();
}
});
});
});
HTML标记,我用PHP / PDO回应内容:
<li id='{$row['id']}'>
<div class='imgHover'>
<div class='hover'>
<a href='#' ><img src='../img/delete.png'></a></div><img src='{$row['path']}'>
</div></li>
当直接链接到delete.php
时,我没有问题,它工作正常,它只是发送带有ajax的ID,这是问题。可能是MAMP的问题吗?我没有远程测试过。
答案 0 :(得分:0)
问题在于您如何检索服务器上的数据。
type: "POST"
您在AJAX呼叫中指示的是,但在您执行的服务器上
$id = (int) $_GET['id'];
所以你永远不会捕获帖子。将$_GET[]
更改为$_POST[]
。
注意强>
只是一个小小的注释,如果你将其转换为(int)
,并且你发送一个分数/浮点数,它将向0舍入,而不是向上舍入。因此3.57
(int)
将为3
答案 1 :(得分:0)
如果你不知道你应该使用$ _GET或$ _POST,你可以使用$ _REQUEST。但是你觉得这个查询有什么问题吗$ sql =“DELETE FROM img_nav WHERE id =:id”;等等?程序知道这是什么吗?你应该尝试$ sql =“DELETE FROM img_nav WHERE id ='{$ id}'”;我认为它有效。