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 つは、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);
?>
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 タグは常に 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>   
于 2013-04-09T14:57:43.003 に答える
0

これを試して:

変化する:

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

に:

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