这是我的Ajax函数:
$( document ).ready(function(){
$("#deletebutton").click(function(){
var del_id = $(this).attr('name');
var answer = confirm ("Are you sure?");
if (answer)
$.ajax({
type: "POST",
url: "deletescript.php",
data:'delete_id='+del_id,
success: function(data)
{
alert("Done!");
}
});
});
});
这里是受影响的按钮:
echo'<input type="button" name="'.$id.'" id="deletebutton" value="delete">'
这是我的PHP脚本,名为 deleetesscript . PHP :
$id = $_POST['delete_id'];
$query = "DELETE from items where id = '$id'";
$result = $mysqli->query($query);
即使我收到"已完成!"作为提醒,我的项目仍然存在。我还用Firebug检查了正确的ID是否成功地发送到deleteescript .php文件。我要做什么?我还在我的数据库上手动测试了SQL-Query,它工作了。搜索了类似的问题,发现了一些,遗憾的是,甚至他们的解决方案也没有帮助。我不知道该怎么办……谢谢你!
打印完整的查询并在数据库管理工具中执行。因此,您可以看到它是哪个查询。
一般来说,我会对你说几件事:
- 对于删除,发送DELETE请求而不是POST
- 不要在引号之间放变量
- 序列化查询参数以防止sql注入
更好的选择和解决方案:
软删除- 添加状态字段到您的表
- 可以有活动状态和非活动状态(已删除)
- 是否要删除记录?设置状态为非活动
- 默认读出活动项
尝试jquery $.post:
$( document ).ready(function(){
$("#deletebutton").click(function(){
var del_id = parseInt($(this).attr('name'));
var answer = confirm ("Are you sure?");
if (answer){
$.post('deletescript.php',{id:del_id}, function(callback){
if(callback){
alert("Done!");
}
});
}
});
});
PHP文件将通过$_POST['id']访问id
回调函数将包含PHP文件将返回/show