首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ajax/jQuery评论系统

Ajax/jQuery评论系统
EN

Stack Overflow用户
提问于 2011-02-27 05:46:44
回答 2查看 1.7K关注 0票数 1

用Ajax和JQuery构建一个评论系统,我想在添加评论后重新加载评论所在的div。它可以正常开机自检。这就是我到目前为止所拥有的。

函数getComments查询数据库并生成html

代码语言:javascript
复制
$.ajax({
type: "POST",
url: "post_comment.php",
data: dataString,
cache: false,
success: function(html){

????????? What should go here... it is a div with id#commentBody

}

<div id="commentBody">
    <ul>
    <?php
        $q = "SELECT * FROM comment WHERE parent_id = 0 AND idpost = $postID";
        $r = mysql_query($q);
        while($row = mysql_fetch_assoc($r)):
            getComments($row,$postID,$custID);
        endwhile;
    ?>
    </ul>
</div> 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-27 05:52:28

当你发布它时,你应该从你的服务器端脚本返回你想要的数据。然后,您可以使用.html() jQuery函数来更新您的div。

所以,就像:

代码语言:javascript
复制
$('#commentBody').html(html);

您也可以只返回最新的注释(也可以作为JSON对象),然后使用.append()方法将其添加到#commentBody中。

我将创建一个具有status属性和data属性的JSON对象。当status为-1 (或其他值)时,添加注释时出现错误,您可以在data属性中添加一条消息。当status为0时,它是成功的,最新的注释信息将在data属性中可用。

示例

PHP

代码语言:javascript
复制
//Check postback variables, add comment and retrieve
//  comment information (such as ID) if necessary
if (postedsuccessfully) {
   $ary = array("status" => 0,
                "data" => array("id" => $commentidvar,
                                "user" => $commentuser,
                                "text" => $comment)
               );
   echo json_encode($ary);
} else {
   $ary = array("status" => -1,
                "data" => "There was a problem adding your comment.");
   echo json_encode($ary);
}

JavaScript

代码语言:javascript
复制
success: function(json){
   if (json.status == 0) {
      $mydiv = $('<div>');//construct your comment div using json.data.id,
                          //json.data.user, and json.data.text
      $('#commentBody').append($mydiv);
   } else {
      alert(json.data);
   }
}
票数 1
EN

Stack Overflow用户

发布于 2011-02-27 05:50:28

由于您重新生成了整个div,因此我将使用replaceWith

$('#commentBody').replaceWith(html);

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5129955

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档