编辑
忘记了几个重要的点。
我这样做是为了消除页面必须刷新并因此跳回页面顶部。
ajax 函数的成功函数将返回一个全新的 div id="comments" 以替换现有的一个错误消息或新的评论以及它下面的所有其他评论。
结束编辑
我一直在尝试封装这个 jquery-ajax 函数,但没有成功。我在一个页面上有 X 个帖子,每个帖子都有一个用于在每个帖子下插入评论的表单。我认为我非常接近并尝试使用 firebug 对其进行调试,但老实说,我真的不知道我在看什么或在 firebug 中查看什么。
所有代码都在下面,任何帮助将不胜感激!
HTML表单和结构(由于表单重复,我觉得应该使用父jquery选择方法,而不是在我的输出脚本中迭代每个post-comment分区)
<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 vars 的初始行。)
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 脚本。
再次感谢,