版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaoyanyanlh/article/details/82593947
PHP基于Bootstrap的分页
首先是效果图.(PHP我用的是Yaf框架)
1.HTML页面
<nav aria-label="Page navigation" style="float:right;">
<ul class="pagination">
<?php echo $pageNumString?>
</ul>
</nav>
2.PHP代码
//用户列表
public function userlistAction()
{
//分页
//当前页,默认为1
$curPage = isset($_GET['curPage']) ? $_GET['curPage'] : 1;
//获取所有的用户数据
// 在 getTotalRows() 里面我是用count(id) as total 查询的
$totalRows = $this->_db->getTotalRows();
$totalRows = $totalRows['total'];
//自定义一个最大的页码数
$rowsPerPage = 10;
//获取数据
$offset = ($curPage - 1) * $rowsPerPage;
//查询每页用户列表
// 在 selectAll() 中,根据偏移量,使用limit 查询每页的数据
$ret = $this->_db->selectAll($offset, $rowsPerPage);
//总页数
$totalpage = ceil($totalRows / $rowsPerPage);
//存储页面字符串
$pageNumString = '';
if ($curPage <= 5) {
$begin = 1;
$end = $totalpage >= 10 ? 10 : $totalpage;
} else {
$end = $curPage + 5 > $totalpage ? $totalpage : $curPage + 5;
$begin = $end - 9 <= 1 ? 1 : $end - 9;
}
//上一页
$prev = $curPage - 1 <= 1 ? 1: $curPage - 1;
$pageNumString .= "<li><a href='/user/userlist?curPage=1'>首页</a></li>";
$pageNumString .= "<li><a href='/user/userlist?curPage=$prev'>«</a></li>";
//根据起始页与终止页将当前页面的页码显示出来
for ($i = $begin; $i <= $end;$i ++) {
//使用if实现高亮显示当前点击的页码
//这是 bootstrap的全局样式
if ($curPage == $i) {
$pageNumString .= "<li class='active'><a href='/user/userlist?curPage=$i'>$i</a></li>";
} else {
$pageNumString .= "<li><a href='/user/userlist?curPage=$i'>$i</a></li>";
}
}
//实现下一页
$next = $curPage + 1 >= $totalpage ? $totalpage : $curPage + 1;
$pageNumString .= "<li><a href='/user/userlist?curPage=$next'>»</a></li>";
$pageNumString .= "<li><a href='/user/userlist?curPage=$totalpage'>尾页</a></li>";
$this->getView()->assign('pageNumString', $pageNumString);
$this->getView()->assign("ret",$ret);
}