清除和更改div的内容

时间:2014-10-26 13:17:41

标签: javascript php innerhtml

我正在尝试将评论div的内容替换为新评论,方法是再次加载并替换旧评论。当我更改div的内容时,它仅替换第一个注释并重复整个注释:

这里是注释div:

<?php
$comment_qry = mysqli_query($conn, "SELECT * FROM comments WHERE post_id='$post_row[id]' ORDER BY id DESC");
while($comment_row = mysqli_fetch_array($comment_qry)){ 
?>
<div id="comments_div">
    <div style="background:#aaaaaa; margin:5px;">
        <p onclick="report_var(<?php echo $post_row['id']; ?>, <?php echo $comment_row['user_id']; ?>);">report</p>
        <p>user: <?php echo $comment_row['user_id']; ?></p>
        <p>date: <?php echo date("Y-m-d", $comment_row['date']); ?></p> 
        <p>content: <?php echo $comment_row['content']; ?></p>
        <?php if($post_row['user_id'] == $my_id or $comment_row['user_id'] == $my_id or $admin == 1){ ?>
             <p><span onclick="comment_remove(<?php echo $comment_row['id']; ?>, <?php echo $comment_row['user_id']; ?>);">delete</span></p>
        <?php } ?>
    </div>
</div>
<?php } ?>

ajax代码:

/////////////////////////comment function
function comment(post_id, poster_id)
{
loadXMLDoc("php/comment.php?post_id="+post_id+" content="+document.getElementById("content").value+"&poster_id="+poster_id,function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
        document.getElementById("comments_div").innerHTML = xmlhttp.responseText;
    }
  });
}

comment.php:

<?php
$comment_qry = mysqli_query($conn, "SELECT * FROM comments WHERE post_id='$_GET[post_id]' ORDER BY id DESC");
while($comment_row = mysqli_fetch_array($comment_qry)){ 
?>
    <div style="background:#aaaaaa; margin:5px;" class="comment">
        <p onclick="report_var(<?php echo $post_row['id']; ?>, <?php echo $comment_row['user_id']; ?>);">report</p>
        <p>user: <?php echo $comment_row['user_id']; ?></p>
        <p>date: <?php echo date("Y-m-d", $comment_row['date']); ?></p> 
        <p>content: <?php echo $comment_row['content']; ?></p>
        <?php if($_GET['poster_id'] == $my_id or $comment_row['user_id'] == $my_id or $admin == 1){ ?>
             <p><span onclick="comment_remove(<?php echo $comment_row['id']; ?>, <?php echo $comment_row['user_id']; ?>);">delete</span></p>
        <?php } ?>
    </div>
<?php } ?>

1 个答案:

答案 0 :(得分:0)

您的第一个代码段是为每个评论创建单独的comments_div。然后,您的JavaScript代码段只是替换第一个内容。

您可以通过将comments_div 放在<{1}}循环外部来修复它,然后在该循​​环中使用与第三个循环相同的HTML输出代码示例(每个评论while)。

所以,这样的东西代替了第一个代码片段:

div.comment