我已成功使用执行加载更多按钮功能 jQuery - AJAX load()方法,它的工作方式如下,当页面加载时显示我的db中的前3条注释,如果用户点击加载更多按钮,它将加载3条评论,用户点击一次加载3条评论,直到没有来自db的更多评论。
问题是当db没有更多评论时,用户必须一直向上滚动。这不是非常人性化,我知道可以回到顶部链接引导用户回去,有没有其他替代解决方案?
比如检测最后一次点击或者当db评论中没有更多数据时,则显示更少(仅显示前3条评论),就像facebook风格一样。 这是我的代码
<script>
$(document).ready(function(){
<?php if ( more_than_3_reviews($the_post_id) ): ?>
var reviews_count = 3 ;
$("#show_more_reviews").click(function(){
reviews_count = reviews_count + 3;
$("#show_more").load("ajax/load_comments.php", {
new_comments_count : comments_count,
post_id: <?php echo $the_pro_id; ?>
});
});
<?php else: ?>
$("#show_more").remove();
<?php endif; ?>
});
</script>
我的后端php文件
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if(isset($_POST['new_comments_count']) and isset($_POST['post_id']) ){
$comments_count = $_POST['new_comments_count'];
$the_pro_id = $_POST['post_id'];
$approved = "approved";
$stmt10 = mysqli_prepare($connection,"SELECT comment_name, product_id,comment_msg, date_time FROM comments WHERE product_id = ? and comment_status = ? LIMIT $comments_count");
mysqli_stmt_bind_param($stmt10, "is", $the_pro_id , $approved );
mysqli_stmt_execute($stmt10);
mysqli_stmt_bind_result($stmt10, $comment_name,$product_id,$comment_msg,$date_time);
mysqli_stmt_store_result($stmt10);
while(mysqli_stmt_fetch($stmt10)){
$get_comment = <<<DELIMETER
<div class="media">
<a class="pull-left" href="#">
<img class="media-object" src="http://placehold.it/64x64" alt="">
</a>
<div class="media-body">
<h4 class="media-heading"> {$comment_name} <small>{$date_time}</small> </h4>
{$comment_msg}
</div>
</div>
DELIMETER;
echo $get_comment;
}
} // post get comments
} // if its POST request
任何帮助都将受到赞赏。