2011-02-26 135 views
1

使用Ajax和JQuery構建評論系統,我希望在添加評論後重新加載評論。它帖子很好。這是我迄今爲止所擁有的。Ajax/jQuery評論系統

功能getComments查詢數據庫,並生成HTML

$.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> 

回答

1

當你將它張貼,你應該從你的服務器端腳本返回你想要的數據。然後你可以使用.html() jQuery函數來更新你的div。

因此,像:

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

你也可以只返回最新評論(任選地作爲一個JSON對象),然後只用了.append()方法將它添加到您的#commentBody。

我會創建一個具有status屬性和data屬性的JSON對象。當status爲-1(或其他)時,添加註釋時出錯,您可以在data屬性中輸入消息。當status爲0時,它成功並且最新的評論信息將在data屬性中可用。

PHP

//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

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); 
    } 
} 
+0

感謝這一切 – John 2011-02-26 22:04:19

+0

@約翰:不客氣。只是供參考,我沒有測試代碼,但它應該工作。如果您遇到困難,請發表評論,我會提供幫助。 – 2011-02-26 22:05:56

+0

+1 drackir耐心地寫出這麼多...所以網站對於那麼多好心和聰明的人來說簡直太棒了...... – kobe 2011-02-26 22:07:09