在我的主页中,我通过以下代码显示了我表格的最后三行:
$result = mysql_query("SELECT id, title, date, text FROM news WHERE hshs=1 ORDER BY date DESC LIMIT $p") or die(mysql_error());
$p
来自哪里:
$p = $_GET['page'];
if ( empty($p) ) {
$p = 2;
$more = 4;
}
else{
if ( $p < $postnum ) {
$more = $p + 2;
}
else{
$finish = 1;
}
}
和$postnum
是行数。
然后,我有这一行加载更多帖子:
if ( $finish != 1 ) {
echo '<center><strong><a id="loadmore" href="?page='.$more.'">Load more posts...</a></strong></center>';
}
这很好地完成了它的工作。但我有一个问题。我不想再次加载整个页面来加载更多帖子。因为这将从它的顶部再次显示页面!我希望页面保持原样,而不是将用户滚动到顶部,然后加载更多帖子。
希望你能理解我! :)答案 0 :(得分:0)
步骤1)点击&#34;加载更多帖子调用Ajax请求。&#34;。
步骤2)PHP将返回更多帖子作为对Ajax请求的响应。
步骤3)将Ajax结果附加到适当的div中(最好使用jQuery)。
注意:在MySQL查询中使用限制以获得正确的分页机制。
答案 1 :(得分:0)
使用jQuery:
jQuery( document ).on( 'click', '#loadmore', function() {
jQuery.ajax({
url: "./path-to-your-sql-load",
data: {
ajax: '1',
page: '<?php echo $page+1; ?>'
},
method: 'get',
success: function( response ) {
console.log( response );
jQuery( '#results' ).append( response );
}
});
} );
在你的SQL加载中,你可以检查它是否是这样的ajax:
if( $_GET[ 'ajax' ] == '1' ):
// ajax
else:
// no ajax
endif;