【问题标题】:Limit number of pages in pagination限制分页的页数
【发布时间】:2017-10-18 19:10:49
【问题描述】:

我正在尝试创建我的第一个“新闻页面”。为了更好的用户体验,我试图做一个简单的分页,而不是滚动到永恒。

到目前为止,我已经做到了:

  • 显示X 每个站点的新闻数量
  • 在底部显示页面,以滚动浏览

我缺少的是,如果有很多新闻,就会显示大量页面。如果我能够限制显示的页面数量,那就更好了:

例如;如果我在第 5 页,我应该能够看到第 2、3、4、5、6、7、8 页。

如何在我的代码中实现它?我对此非常不确定。

我的代码

<?

$sqlDos = "SELECT COUNT(id) FROM articles";


$rs_result = mysqli_query($con, $sqlDos);  
$row = mysqli_fetch_row($rs_result);  
$total_records = $row[0];  

$total_pages = ceil($total_records / $limit);  
$pagLink = "<div class='pagination'>"; 


for ($i=1; $i<=$total_pages; $i++) {  
    if ($i == $page) {
        $pagLink .= "<a class='active' href='#'>".$i."</a>"; 
    } else {
        $pagLink .= " <a href='news.php?page=".$i."'>".$i."</a>";
    }
};


echo $pagLink . "</div>"; 

?>

我希望您能花时间解释如何做到这一点,因为这是我的第一个类似项目。

非常感谢! :-)

编辑 我只展示了相关的代码,因此可能缺少一些变量来显示它们是什么 - 如果您认为缺少某些东西,请告诉我:)

【问题讨论】:

  • 如果当前页面是2,你想向用户显示的所有页面是什么
  • @Tarun 那么它应该只有 1, 2, 3, 4, 5 - 所以每边最多三页,但如果用户只在第 2 页,如你所说,应该只有低一页(第 1 页):)
  • 好的,我发布了答案

标签: php mysqli pagination


【解决方案1】:

将当前页码发布到 PHP 脚本并应用以下逻辑:

$startPage = 1;
$endPage   =  $page+ 3;
if($currentPageNo > 3){
   $startPage =  $page - 3;
}

for ($i=$startPage; $i<=$endPage; $i++) {  
    if ($i == $page) {
        $pagLink .= "<a class='active' href='#'>".$i."</a>"; 
    } else {
        $pagLink .= " <a href='news.php?page=".$i."'>".$i."</a>";
    }
};

【讨论】:

  • 感谢您的帮助!很容易理解需要做什么 - 谢谢!
猜你喜欢
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
  • 1970-01-01
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
  • 2012-06-25
相关资源
最近更新 更多