清除和更改 div 的内容
Posted
技术标签:
【中文标题】清除和更改 div 的内容【英文标题】:clearing and changing content of div 【发布时间】:2014-12-21 19:06:39 【问题描述】:我正在尝试通过再次加载并替换旧 cmets 来用新 cmets 替换 cmets div 的内容。当我更改 div 的内容时,它只替换第一条评论并重复整个评论:
这里是 cmets 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 ?>
【问题讨论】:
Comment.php 代码与问题无关,我不认为。如果不是,只需将其删除,以便读者更清洁 我不知道这是否是问题,但post_id='$_GET[post_id]'
应该是post_id='$_GET[post_id]'
和post_id='$post_row[id]'
应该是post_id='$post_row[id]'
问题在于innerHTML,它只替换了第一条评论..
【参考方案1】:
您的第一个代码 sn-p 正在为 每个 注释创建一个单独的 comments_div
。那么你的 javascript 代码 sn-p 只是替换了第一个的内容。
您可以通过将comments_div
外部 放在 PHP while
循环中来修复它,然后在该循环中使用与第三个示例相同的 HTML 输出代码(@ 987654324@ 每条评论)。
所以,用这样的东西代替第一个代码 sn-p:
<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>
【讨论】:
以上是关于清除和更改 div 的内容的主要内容,如果未能解决你的问题,请参考以下文章
清除内容可编辑的div时键盘在Safari iOS 6中停止工作