使用Ajax和JQuery构建注释系统,我希望在添加注释后重新加载注释的div。它发布得很好。这是我到目前为止所做的。
函数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>
答案 0 :(得分:2)
由于你正在重新生成整个div,我会使用replaceWith。
$('#commentBody').replaceWith(html);
答案 1 :(得分: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);
}
}