我正在尝试使用AJAX通过前端站点动态删除数据库中的记录,我有代码但是当我单击删除按钮时没有任何反应,有数据库的连接我只是找不到错误代码,所有代码文件都相互链接。
我要删除记录的表格称为食谱。
HTML
<div id="recipecards2" class="row">
<div class="col-sm-3">
<div id="recipecards" class="card">
<div class="card-body">
<p>
<button type="button" id="deletebutton" class="btn btn-outline-danger" input type="submit" name="recipe_delete" data-id="<?php echo $recipe['recipe_id']; ?>">
<i style=color:black; class="fa fa-trash-o"></i> Delete Recipe </button> </a>
</p>
</div>
</div>
<br>
</div>
Ajax PHP代码
<?php
require_once('../includes/db.php');
if($_POST['itemid']){
$query = "DELETE FROM recipes WHERE itemid= $recipe_data['recipe_id'];";
$result = $DBH->prepare($query);
$result->bindParam(':itemid', $_POST['itemid']);
$result->execute();
echo $_POST['itemid'];
}
?>
的Javascript
$('#recipecards2').on('click', '#deletebutton', function() {
// var that = this;
var itemid = $('#recipecards').attr('data-id');
var request = $.ajax({
url: "ajax/removeItemsFromList.php",
type: "post",
data: { itemid : itemid}
});
// If we're successfull!
request.done(function (response, textStatus, jqXHR){
$('#recipecards2 > #recipecards[data-id="'+response+'"] ').remove();
});
});
答案 0 :(得分:1)
首先,您的问题是您错误地使用named parameters,您正在prepare
查询,但同时您将值直接传递给它
更改,
$query = "DELETE FROM recipes WHERE itemid= $recipe_data['recipe_id'];";
要,
$query = "DELETE FROM recipes WHERE itemid = :itemid;";
其次,如果您使用的是data-*
属性,请考虑使用相应的.data()
功能。
第三,当您执行AJAX请求并且它没有正确时,请打开浏览器控制台并检查该请求的响应。这通常应该指向正确的方向。
第四,您的按钮HTML格式不正确,请查看按钮代码,
<button type="button" id="deletebutton" class="btn btn-outline-danger" input type="submit" name="recipe_delete" data-id="<?php echo $recipe['recipe_id']; ?>">
注意你有button
/ input
混合的方式?选择一个,你不需要同时拥有它们。