【发布时间】:2019-04-12 12:10:16
【问题描述】:
我有一个帖子和评论系统。类似于 facebook 的帖子和评论系统。帖子显示正常,我可以对所有帖子发表评论。但是 cmets 仅显示第一个帖子,即显示在顶部的帖子。 . 我需要您帮助的问题如下: -每个帖子的cmets应该对应显示。
这些是我所做的。 查看:
<div class="box box-widget">
<div class="box-header with-border">
<div class="user-block">
<span class="description">Shared publicly - <?php echo time_ago($post['post_date'])?></span>
</div>
</div>
<div class="box-body" style="display: block;">
<img class="img-responsive show-in-modal" src="<?php echo base_url('post_file/'.$post['post_image'])?>" alt="">
<input type="hidden" id="stid" value="<?php echo $post['spid']; ?>">
<p><?php echo $post['postcontent']?></p>
<button type="button" class="btn btn-default btn-xs"><i class="fa fa-share"></i> Share</button>
<div>
<input type="hidden" id="pl_postid" name="pl_postid" value="<?php echo $post['spid']; ?>">
<button type="button" class="btn btn-default btn-xs"><i class="fa fa-thumbs-o-up"></i> Like</button>
</div>
<span class="pull-right text-muted"><?php //echo $countlikes ?> likes - 3 comments</span>
</div>
<div id="display_comment"></div>
<div class="box-footer" style="display: block;">
<form id="com" class="com" method="post">
<div class="img-push">
<input type="hidden" class="status_id" id="status_id" name="status_id" value="<?php echo $post['spid']; ?>">
<textarea name="comment" id="comment" class="form-control input-sm comment" placeholder="Press enter to post comment"></textarea>
<div class="box-footer box-form">
<btn class="btn btn-azure btn-sm pull-right commentbt" id="commentbt">Comment</btn>
<ul class="nav nav-pills">
<li><i class="fa fa-bullhorn"></i></li>
</ul>
</div>
</div>
</form>
</div>
</div>
<?php endforeach;?>
jquery:
$(".commentbt").click(function(){
var status_id = $(this).closest("div.img-push").find("input[name='status_id']").val();
var comment = $(this).closest("div.img-push").find("textarea[name='comment']").val();
alert(comment);
var dataString = 'status_id='+ status_id +'&comment='+ comment;
if(comment==''||status_id==''){
alert('Can not send empty comment')
}
else{
$('#display_comment').show();
//$("#display_comment").fadeIn(100).html('<img src="<?php //echo base_url();?>uploads/ajax-loader.gif" />Loading Comment...');
$.ajax({
type:"POST",
url:"<?php echo site_url('user/postcomment')?>",
data:dataString,
cache:false,
success: function () {
$(document).ready(function(){
var status_id = $("#stid").val();
$.post('<?php echo site_url('user/getcomments');?>',
{
status_id:status_id
},
function(data){
$("#display_comment").html(data);
});
});
$('#com')[0].reset();
}
});
}return false;
});
});
谢谢
【问题讨论】:
-
cmets 的循环在哪里,通常需要一个循环来从数据库输出结果。再说一遍那些在哪里......你确定你首先从数据库中提取数据等等......
-
是的,我用 foreach 做了,cmets 被发送到我使用 Jquery 显示的评论页面
-
所以,第一个
ajax调用这个<?php echo site_url('user/postcomment')?>工作正常,但下一个:$.post('<?php echo site_url('user/getcomments');?>'应该得到提交的评论工作不正常?你说这个是在顶帖显示cmets? -
$.post('' 正在工作,但只在顶部显示帖子的评论,忽略下面的其他帖子。
-
@SholleyonlineJava 我的回答对您有帮助吗?有时间请查看。