Javascript jQueryAjax代码确实运行,但MySQL帖子不会被删除

Javascript jQueryAjax代码确实运行,但MySQL帖子不会被删除,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我对这段代码有一个问题,完整的Ajax代码一直运行到最后,并逐渐淡出deletebtn的父级,下面是deletebtn、post和Ajax的代码: <?php include('php/connect.php'); $roomQuery = "SELECT * FROM rooms"; $roomResult = mysqli_query($conn, $roomQuery); while($roomRow = mysqli_fetch_arra

我对这段代码有一个问题,完整的Ajax代码一直运行到最后,并逐渐淡出deletebtn的父级,下面是deletebtn、post和Ajax的代码:

    <?php
    include('php/connect.php');
    $roomQuery = "SELECT * FROM rooms";
    $roomResult = mysqli_query($conn, $roomQuery);


    while($roomRow = mysqli_fetch_array($roomResult)){
        echo "<div class='roomParent'>";
        echo "<div class='edit_roomRow'><h1> Rum " . $roomRow['ID'] . "</h1>" . "<h4>" . $roomRow['Description'] . "</h4></div><div name='id' id='removepost' value='" . $roomRow['ID'] . "' class='btn btn-danger delete-btn'>Ta bort</div>";
        echo "</div>";
    }

    mysqli_free_result($roomResult);

    mysqli_close($conn);
?>
</div>


<script type="text/javascript">
    $(".delete-btn").click(function(){
        var id = $(this).val();
        var parent = $(this).parent();

    //Ajax call
    $.ajax({
        method:"GET",
        url: "php/deletepost.php",
        data:{ removepost: id },
        success: function(){
        $(this).val("");
        parent.fadeOut("slow")
}});
})

您使用的是
$(this).val()
,它不会返回任何东西,当然也不会返回ID。使用
$(someElement).attr(“ID”)
您使用的是
$(this).val()
,它不会返回任何东西,当然也不会返回ID。使用
$(someElement).attr(“ID”)
无法获取div的值。 我建议将div改为按钮:

echo "<div class='edit_roomRow'><h1> Rum " . $roomRow['ID'] . "</h1>" . "<h4>" . $roomRow['Description'] . "</h4></div><button name='id' id='removepost' value='" . $roomRow['ID'] . "' class='btn btn-danger delete-btn'>Ta bort</button>";
echo“Rum”$roomRow['ID']。"" . "" . $roomRow['Description']。“Ta bort”;
现在,您可以在jQuery click事件中使用$(this).val(),并获取要删除的文件室的ID值

如果您是新手,那么有一个技巧是打开开发人员控制台(F12),并在jQuery代码中键入一些Console.log(“要记录的项”),以查看在不同的步骤中发生了什么。如果在当前代码中执行此操作,并执行“console.log(id)”,它将输出“”。(您还可以在代码中插入断点并逐步执行,以更好地了解发生的情况)

上面的提示绝不是一种“专业”或教科书式的处理方式,但它确实很有用,人们使用它的次数比他们愿意承认的要多

编辑:

虽然我已经有一段时间没有使用MySQL或PHP了,但我的理解是最好在准备好的语句中使用PDO。 这样,您就可以准备要重用的语句,将参数绑定到这些语句,然后执行它们并捕获任何错误


无法获取div的值。 我建议将div改为按钮:

echo "<div class='edit_roomRow'><h1> Rum " . $roomRow['ID'] . "</h1>" . "<h4>" . $roomRow['Description'] . "</h4></div><button name='id' id='removepost' value='" . $roomRow['ID'] . "' class='btn btn-danger delete-btn'>Ta bort</button>";
echo“Rum”$roomRow['ID']。"" . "" . $roomRow['Description']。“Ta bort”;
现在,您可以在jQuery click事件中使用$(this).val(),并获取要删除的文件室的ID值

如果您是新手,那么有一个技巧是打开开发人员控制台(F12),并在jQuery代码中键入一些Console.log(“要记录的项”),以查看在不同的步骤中发生了什么。如果在当前代码中执行此操作,并执行“console.log(id)”,它将输出“”。(您还可以在代码中插入断点并逐步执行,以更好地了解发生的情况)

上面的提示绝不是一种“专业”或教科书式的处理方式,但它确实很有用,人们使用它的次数比他们愿意承认的要多

编辑:

虽然我已经有一段时间没有使用MySQL或PHP了,但我的理解是最好在准备好的语句中使用PDO。 这样,您就可以准备要重用的语句,将参数绑定到这些语句,然后执行它们并捕获任何错误


请注意,如果您试图在jQuery中以值的形式访问
属性,则无法获得
id
属性的值

建议:

1) 您可以在html中使用以下数据属性:


3) 最后,非常重要的一点是,使用而不是直接使用用户输入,这将有助于防止您的代码使用SQL注入。如果您仍然想在这里使用
$\u GET
方法,请注意,每个人都可以使用任何
removepost

点击URL。请注意,如果您试图在jQuery中以值的形式访问
属性,则无法获得
id
属性的值

建议:

1) 您可以在html中使用以下数据属性:


3) 最后,非常重要的一点是,使用而不是直接使用用户输入,这将有助于防止您的代码使用SQL注入。如果您仍然想在这里使用
$\u GET
方法,请注意,每个人都可以使用任何
removepost

点击URL,您还可以使用jQuery中的数据功能。总结一下:

<?php $id = $roomRow['ID']; ?>

<div id='removepost'data-id='<?=$id?>' class='btn btn-danger delete-btn'>

<script type="text/javascript">
     $(".delete-btn").click(function(){
         var id = $(this).data('id');
     });
</script>


您还可以在jQuery中使用data函数。总结一下:

<?php $id = $roomRow['ID']; ?>

<div id='removepost'data-id='<?=$id?>' class='btn btn-danger delete-btn'>

<script type="text/javascript">
     $(".delete-btn").click(function(){
         var id = $(this).data('id');
     });
</script>


你真的用
$\u GET
来删除吗?我是一个真正的初学者,你不能从
中获取值。你可以使用数据属性,因为
Ta bort
比你可以在jQuery中获取值为
$(this)。attr(“数据值”)
r你真的用
$\u GET
来删除吗?我是一个真正的初学者,你不能从
中获取值你可以使用data属性,因为
Ta bort
比你可以在jQuery中获取值作为
$(这个)。attr(“数据值”)
@DouglasPettersson:很高兴帮助你,别忘了SQL注入:)@DouglasPettersson:很高兴帮助你,别忘了SQL注入:)
<?php $id = $roomRow['ID']; ?>

<div id='removepost'data-id='<?=$id?>' class='btn btn-danger delete-btn'>

<script type="text/javascript">
     $(".delete-btn").click(function(){
         var id = $(this).data('id');
     });
</script>