jQuery / PHP - 将数据从JS传递到PHP以在数据库上执行删除

时间:2017-04-22 09:32:58

标签: javascript php jquery mysql

我想通过自己的管理页面删除数据库中的对象。它的工作方式很简单:当我单击与对象对应的行中的删除按钮时,JS代码将获取" id"对象的属性并将其传递给PHP以执行sql删除查询。虽然控制台没有显示任何内容,但我的代码并没有起作用。你介意看一下我的代码并找出它的错误吗?我使用PHP 7.包含所有必需的库。非常感谢你!

以下是我的代码:

HTML:

<table>
    <thead>
        <th>ID</th>
        <th>Name</th>
    </thead>

    <tbody>
        <?php
            include("../connect.php");
            $sql = "select * from tbl";
            $query = mysqli_query($connect,$sql);
            while($data = mysqli_fetch_assoc($query)) {
        ?>

        <tr>
            <td class="data-id">
                <?php echo $data['id'] ?>
            </td>
            <td>
                <?php echo $data['name'] ?>
            </td>
            <td>
                <img src="delete.png" class="delete-button">
            </td>
        </tr>

        <?php } ?>
    </tbody>
</table>

JS:

$(document).ready(function() {
    $('.delete-button').click(function() {
        var id = $(this).parent().siblings('.data-id').text();

        $.ajax({
            type: 'post',
            url: 'http://localhost/myproject/delete.php',
            data: {
                "id":id
            }
        });
    });
});

PHP delete.php

<?php
    include("../connect.php");
    if(isset($_POST["id"])) {
        $id = $_POST["id"];
        $sql = "delete from tbl where id=".$id;
        $query = mysqli_query($connect,$sql);
    }
?>

PHP connect.php

<?php
    $connect = new mysqli("localhost","root","","db");
    mysqli_set_charset($connect,'utf8');
?>

3 个答案:

答案 0 :(得分:2)

您的删除查询语法错误。它应该如下,

$sql = "delete from tbl where id=".$id;

从查询中删除“*”

更新:您的代码中还有2个错误。希望这些更正可能会解决您的问题

问题1:由于您在TD中将文本作为id发送,因此它会沿着HTML中的空格发送id。所以削减你的价值。这是您的查询,

$sql = "delete from tbl where id=".trim($id);

问题2:这可能是拼写错误。 “$ connnect”变量应该是connect.php文件中的“$ connect”。

答案 1 :(得分:0)

似乎$(this).parent().siblings('data-id').text();

应为$(this).parent().siblings('.data-id').text();

缺少班级名称中的点(。)。

答案 2 :(得分:0)

在你的实际代码中,请``for reserved mysql name

更改为以下代码:

$sql = "DELETE FROM `tbl` WHERE `id`='$id'";