1

我有一个评论框,我想在每条评论中添加一个按钮,单击该按钮会从框中删除该评论。以下是每条评论的生成方式(只是部分):

echo '<div>'.$row['Login'].'<button id="jqhide">Hide</button></strong><br/>';

如您所见,按钮有一个 id,当它被点击时,jquery 监听器开始工作:

$("button#jqhide").click(function(){
    var smt = $(this).closest("div").find("p").html();
    $.post("send.php", smt);
});

在“send.php”中:

$con = mysqli_connect(...);
$vrr = $_POST['smt'];
$sql = mysqli_query("DELETE FROM comments WHERE p_id=$vrr");
mysqli_query($con,$sql);

这里卡住了,我的意思是$_POST['smt']似乎是空的。我想要的只是通过它的“p_id”从 MySQL 中删除条目。我很确定我犯了很多错误,但这就是我尝试学习的方式。

添加:

我尝试只运行“send.php”,但出现以下错误:

警告:mysqli_query() 至少需要 2 个参数,1 个在 Z:\home\localhost\www\php\send.php 第 5 行给出

警告:mysqli_query() [function.mysqli-query]:第 6 行 Z:\home\localhost\www\php\send.php 中的空查询

send.php 行:

<?php 
$con = mysqli_connect(localhost, "bla", "eco", "frst_db");
$vrr = $_POST['smt'];
echo $vrr;
$sql = mysqli_query("DELETE FROM comments WHERE p_id=$vrr");
mysqli_query($con,$sql);
?>
4

2 回答 2

1

首先要小心SQL注入

$sql = mysqli_query("DELETE FROM comments WHERE p_id=$vrr");

现在让我们回到你的问题。

var smt = $(this).closest("div").find("p").html();

p标签在哪里?

添加 ap 标记会起作用,否则 p 标记将始终为空!!!

<div>1<button id="jqhide">Hide</button><p>some text to be sent via ajax </p></strong><br/></div>
    <script>
        $("button#jqhide").click(function(){
            alert($(this).closest("div").find("p").html());
    var smt = $(this).closest("div").find("p").html();
    $.post("send.php", smt);
});
</script>   
于 2013-04-09T14:57:43.003 回答
0

试试这个:

改变:

$.post("send.php", smt);

到:

$.post("send.php", { smt: smt } );
于 2013-04-09T14:52:47.897 回答