1

所以我从数据库中提取了一些评论并回显到 div 中。

我正在通过表单输入新评论,并使用 ajax 将它们插入到数据库中。

我希望 div 中的评论在发布后立即更新并显示新评论。

如何刷新 div 以显示新内容,而无需再次加载页面?

javascript是这样的:

      // ... goes after Validation
    if (check == true) {
$.ajax({
type: "POST",
url: "process/addcomment.php",
data: $targetForm.serialize(),
dataType: "json",
success: function(response){

    if (response.databaseSuccess)
       $comment.after('<div class="success">Update Added!</div>');
    else
       $comment.after('<div class="error">Something went wrong!</div>');

}
        });
    }
    return false;
});

});

谢谢你的帮助。

4

2 回答 2

0

我想你想用

http://api.jquery.com/prepend/ 用于在顶部发表新评论,

或者,

http://api.jquery.com/append用于在底部发表新评论。

使用后

   $comment.after('<div class="success">Update Added!</div>');

只需附加或前置形成评论框的有效结构就可以了。就像例如:

$("#comment-holder").append("<div class='commentbox'><p class='commenthead'>" + response.newCommentHeadline + "</p><p class='commentcontent'>" + response.newCommentContent + "</p></div>");

同样值得研究您的response.databaseSuccess,您可能希望更严格地比较它,例如使用“==”,因为布尔值并不总是按您预期的那样工作,因为我不确定您的响应文档的格式是否正确解释为布尔值

于 2013-09-12T21:38:59.303 回答
0

您应该从响应json 中提取所需的数据并生成一个 Html 以附加到您的 div 中,id 为“comment”,然后当您应用您的 css 时,它将获得样式。

我的建议是,如果您不想将来自服务器的额外信息添加到评论中,您只需要一个成功或失败标志,而不是将数据发送到服务器并检索它,您可以在成功插入您的本地数据后使用您的本地数据数据库

if (check == true) {
  $.ajax({
     type: "POST",
     url: "process/addcomment.php",
     data: $targetForm.serialize(),
     dataType: "json",
     success: function(response){
            $("#comment").after('<div><div class="from">'+response.from+'</div><div class="message">'+response.message+'</div></div>');
     }
     fail:function(){
            $("#comment").after('<div class="error">Something went wrong!</div>');
     }
});
}
于 2013-09-12T21:57:32.717 回答