我正在创建一个论坛网页,我会在每条评论下删除此按钮。现在,当您按下此按钮时,我使用ajax将注释的ID发送到PHP文件,如下所示:
function Deletethis(index) {
var result = confirm("Want to delete?");
if (result==true) {
$.ajax({
url: "deletepost.php",
type: "POST",
data: index,
success: function(){
location.reload();
}
});
} else return false;
}
现在问题是我无法从PHP端收到它。我使用过调试器,发现索引值是正确的。我的PHP看起来像这样:
<?php
$con = mysqli_connect("localhost", "root", "123", "test") or die("DIE");
if (isset($_POST['index'])) {
$SoonToBeDeletedComment = $_POST['index'];
};
$index = intval($SoonToBeDeletedComment);
mysqli_query($con, "DELETE FROM commentsbox WHERE commentsbox.`ID` = $index");
echo "Post Deleted...";
mysqli_close($con);
?>
我的代码没有给出任何错误,但它也没有删除帖子。当我在navicat上手动执行相同的过程时,它正在工作,所以我想也许索引是一个字符串,它应该是一个整数。所以我使用intval但它也没有解决问题。任何想法,以帮助我改进我的代码表示赞赏。提前致谢
答案 0 :(得分:1)
在jQuery的.ajax调用中,data
属性需要是一个对象,而不是一个字符串(字符串只是它是一个完整的GET查询字符串,实际上,但这不是你需要的)。
所以,试试这个:
$.ajax({
url: "deletepost.php",
type: "POST",
data: {id: index},
success: function(response){
alert(response);
// location.reload();
}
});
然后在PHP中,将其作为:
$_POST['id']
更新
完整性检查表:
Deletethis
函数实际接收索引吗?$_POST
的内容是什么?$_POST
数组($_POST['id']
)中的ID?这些问题可以帮助您更准确地查明问题。
答案 1 :(得分:0)
您将param发送到您的PHP代码而不定义他的名字:data: { index: index } // param : value
function Deletethis(index)
{
if ( confirm("Want to delete?") )
{
$.ajax({
url: "deletepost.php",
type: "POST",
data: {
index: index
},
success: function(){
window.location.reload();
}
});
}
}
通过使用param直接调用页面,检查您的PHP代码是否正常工作。