我有一个评论框,我想在每个评论中添加一个按钮,这会在点击时从框中删除该评论。以下是每条评论的生成方式(仅部分):
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);
?>
答案 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 } );