0

jquery.load() を使用して、データベースから取得した php 値が入力された html コードを取得する Web ページがあります。

$(function() {
console.log("Starting .load");
$("#stream").append($("#slipp-container").load("includes/databaseslippsAJAXserverside.php .slipp-container"));
});

ページを更新せずに、多くのスリップのうちの 1 つにコメントを追加できるようにしたいと考えています。

各 Slipp は、Slipp に関する基本情報と、databaseslippsAJAXserverside.php個別に読み込まれるユーザー コメントで構成されます。

問題はスリップごとにあり、「コメントを追加」ボックスもあります。これは、送信ボタンのある単なるテキストエリアです。 $value["ID"]スリップの一意の ID です。隠しフィールドを使用してユーザー名を渡し、関数自体を呼び出してスリップの ID を渡すことができると思いましたが、そこからどこに行くべきかわかりません。

<form id="<?php echo $value["ID"]; ?>">
<textarea rows="4" cols="30"></textarea>
<input type="hidden" value="<?php echo $_SESSION["user"]; ?>" name="formUser">
<input type="submit" value="Add Comment" class="commentbutton" id="CCB<?php echo $value["ID"]; ?>" action="javascript: addComment(<?php echo $value["ID"]; ?>)">
</form>

一度に 100 以上のスリップがページに存在する可能性があります (Facebook スタイル)。そのため、ページを更新せずに、データベースに含めるためにフォーム データを関連する php ファイルに送信する 1 つの関数を作成するにはどうすればよいでしょうか?

.load() は基本的にロードするすべての JavaScript を破棄することを確信しています。そのため、各スリップに一意の PHP 生成 JavaScript を添付することはできません。

4

1 に答える 1

0
  1. クラスをフォームに追加します。

    <form id="<?php echo $value["ID"]; ?>" class="comments">
    <textarea rows="4" cols="30"></textarea>
    <input type="hidden" value="<?php echo $_SESSION["user"]; ?>" name="formUser">
    <input type="submit" value="Add Comment" class="commentbutton" id="CCB<?php echo $value["ID"]; ?>" action="javascript: addComment(<?php echo $value["ID"]; ?>)">
    </form>
    
  2. javascriptでハンドラーをフォーム送信に設定します:

    $(function() {
     $('form.comments').submit(function(e) {
        $.post('myformhandler.php',data: $(this).serializeArray(),function(data) {
         /* Add an action here performed on success loading, 
            use data as returned value; */
         });
        return false;
     }
    );
    });
    
于 2012-10-28T22:38:19.773 に答える