2014-10-26 4 views
1

Я пытаюсь заменить содержание комментариев 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 } ?> 

код АЯКС:

/////////////////////////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; 
    } 
    }); 
} 

комментарий. 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 } ?> 
+0

Comment.php код не имеет отношения к вопросу, я не думаю. Если это не так, просто удалите его, чтобы он стал чище для читателей. –

+0

Я не знаю, является ли это проблемой, но 'post_id = '$ _ GET [post_id]'' должно быть 'post_id = '{$ _ GET [post_id]}' 'и' post_id = '$ post_row [id]' 'должно быть' post_id = '{$ post_row [id]}' ' – bansi

+0

problom находится в innerHTML, вместо этого заменяет только первый комментарий. – Nameer

ответ

0

Ваш первый фрагмент кода создает отдельный comments_div Fo r каждый комментарий. Тогда ваш фрагмент кода JavaScript просто заменяет содержимое первого.

Вы можете это исправить, поставив comments_divвне в РНР while цикла, а затем, используя один и тот же выходной HTML-код внутри этого цикла, как вы находитесь в третьем примере (а div.comment на комментарий).

Так, что-то вроде этого, вместо этого первого фрагмента кода:

<div id="comments_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 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 } ?> 
</div> 
+0

благодарит вас за то, что он сейчас работает :) – Nameer

Смежные вопросы