Javascript jQueryAjax代码确实运行,但MySQL帖子不会被删除
我对这段代码有一个问题,完整的Ajax代码一直运行到最后,并逐渐淡出deletebtn的父级,下面是deletebtn、post和Ajax的代码: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
<?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>