PHP AJAX动态删除数据

时间:2018-04-12 16:11:51

标签: php ajax pdo

我正在尝试使用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();
    });
});

1 个答案:

答案 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混合的方式?选择一个,你不需要同时拥有它们。

相关问题