使用 jQuery、AJAX、PHP 删除数据库中的行

问题描述

编辑:

根据以下评论中提供的解决方案。

数据库中什么都没有发生
解决方案是简单地刷新页面,因为我以前在不同的目录中有 delete.PHP 文件(所以代码工作正常......这只是身份错误的情况 - 它总是最小的事情)。

页面上什么都没有发生
解决方案是给父

一个唯一的 id(与 delete-button/image - 1 相同),然后在我的 jQuery.js 文件中的 ajax 函数添加...
success: function() {
    $('#'.concat(id)).remove();
}

感谢@SikanderNawaz

结束编辑

我正在尝试使用 jQuery、AJAX 和 PHP 删除我的数据库中的一行,我的代码应该可以,但无法正常工作。
我点击了删除按钮,但在页面数据库中没有任何反应。

我哪里做错了?
希望这里有人可以提供帮助。

数据库

------------------
| id | link      |
------------------
| 1  | image.jpg |
------------------

HTML

<head>
    ...
    <script src="jquery-3.4.1.js"></script>
    ...
</head>
<body>
    ...
    <button type="button" name="delete" id="delete" class="some stylings" value="1"><h6><b>X</b></h6></button>
    <img src="images/image.jpg" />
    ...
    <script src="jQuery.js"></script>
</body>

jQuery.js

$(document).ready(function(){
    $('button#delete').click(function(){
        var id = $(this).val(); // tested and returns 1 (see button value)
        
        $.ajax({
            url: 'delete.PHP',type: 'post',data: { id: id },success: function() {
                $('#'.concat(id)).remove();
            }
        });
    });
})

delete.PHP

<?PHP
    
    require ("connection.PHP");
    
    if (isset($_POST['id'])) {
        
        $id = $_POST['id'];
        
        try {
            
            $sql = 
            "
            DELETE FROM test
            
            WHERE
                id = ?
            ";
            
            $prepareTest = $pdo->prepare($sql);
            $prepareTest->execute([$id]);
            
        } catch(PDOException $e) {
            
            file_put_contents('../error/e.txt',$e->getMessage(),FILE_APPEND);
            
        }
    
    }

1 个答案:

答案 0 :(得分:1)

在使用 JS/Ajax 时,总是使用 console.log 来记录数据和错误,并在网络选项卡中发现错误以及任何与数据库相关的错误,并通过在每个步骤中转储的数据来管理您的调试以发现问题错误来自。

解决方法

在使用 JS/Ajax 时,总是使用 console.log 来记录数据和错误,并在网络选项卡中发现错误以及任何与数据库相关的错误,并通过在每个步骤中转储的数据来管理您的调试以发现问题错误来自。