編集
いくつか重要な点を忘れていました。
これは、ページを更新する必要がなくなり、ページの上部に戻るのを防ぐためです。
ajax 関数の成功関数は、新しい div id="comments" 全体をキックバックして、既存のものをエラー メッセージまたは新しいコメントのいずれかに置き換えます。
編集終了
私はラップの下でこのjquery-ajax関数を試みましたが失敗しました。ページに X 個の投稿があり、各投稿の下にコメントを挿入するためのフォームがあります。私はかなり近いと思い、firebugを使用してデバッグしようとしましたが、正直なところ、firebugで何を見ているのか、何を求めているのかよくわかりません。
すべてのコードは以下のとおりです。
HTML のフォームと構造 (反復フォームのため、出力スクリプトでコメント後の各パーティションを繰り返すのではなく、親 jquery 選択メソッドを使用する必要があると思います)
<div id="content_body_right">
<div id="activity">
....this is the area for each post....
</div>
<div id="comments">
<p class="comments_label">' . $reply_count . ' Comment</p>
<div id="comment1">
<div id="comment_user_img">
' . $imgOutputReply . '
</div>
<div id="comment_user">
<p class="user_text_comment">' . $firstNameReply . ' ' . $lastNameReply . '</p><p class="date_text_comment">' . $date_timeReply . '</p>
<p class="message_text_comment">' . $messageReply . '</p>
</div>
</div>
<div id="add_comment">
<form id="formAddComment" action="dashboard.php" enctype="multipart/form-data" method="post">
<div id="add_comment_left">
<textarea id="comment" name="comment" cols="75" rows="2">Add a Comment...</textarea>
</div>
<div id="add_comment_right">
<input id="userID" name="userID" type="hidden" value="' . $userID . '" />
<input id="actID" name="actID" type="hidden" value="' . $actID . '" />
<input id="btnComment" name="btnComment" type="submit" value="" title="Add Comment" />
</div>
</form>
</div>
</div>
</div>
さて、JQuery マークアップ
<script type="text/javascript">
$(document).ready(function(){
$("#formAddComment").submit( function(e) {
e.preventDefault();
var form = $(this);
var div_add_comment = form.parent();
var div_comments = div_add_comment.parent();
$.ajax({
type: "POST",
data: form.serialize(),
url: "includes/comment.php",
success: function(msg){
$div_comments.html(msg);
}
});
return false;
});
});
</script>
最後に、外部 php スクリプト (注: データ フィードを php 変数にローカライズする最初の行のみを投稿します。)
if(isset($_POST['actID'])){
$actID = mysql_real_escape_string($_POST['actID']);
$userID = mysql_real_escape_string($_POST['userID']);
$comment = mysql_real_escape_string($_POST['comment']);
............other processing here...........
}
ほとんどの場合、jquery スクリプトが疑わしいです。
再度、感謝します、