使用从PHP中的jQuery接收的数据

时间:2013-04-09 14:43:20

标签: php jquery mysql mysqli .post

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

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在第5行的Z:\ home \ localhost \ www \ php \ send.php中给出

     

警告: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);
?>

2 个答案:

答案 0 :(得分:1)

首先要小心SQL注入

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

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

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

p标签在哪里?

添加一个p标签并且可以正常工作,否则p标签将始终为null !!!

<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>   

答案 1 :(得分:0)

试试这个:

变化:

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

为:

$.post("send.php", { smt: smt } );