分页功能最主要的就是分页页码的生成,示例如下
<?php
/**
* @params $totalpage 总条数
* #params $pagesize 显示条数
* #params $pageindex 当前页
*/
function page($totalpage, $pagesize, $pageindex){
$page = ceil($totalpage/$pagesize); //页码
$pagelist = '<ul class="pagination">';
//上一页,首页,页码大于1,且当前页大于1,才会显示首页,和上一页
if($page > 1 && $pageindex > 1){
$pagelist .= '<li><a href="demo2.php?page=1">首页</a></li>';
$prev_page = $pageindex - 1;
$pagelist .= '<li><a href="demo2.php?page='.$prev_page.'">«</a></li>';
}
$start_page = 1;
$end_page = $page;
//中间页码,当页码大于9时,最多只显示9项
if($end_page >= 9){
$start_page = ($pageindex - 4) > 1 ? $pageindex-4 : 1;
$end_page = ($pageindex + 4) > $page ? $page : $pageindex+4;
}
for ($i=$start_page; $i <= $end_page; $i++) {
if($i == $pageindex){
$pagelist .= '<li ><a>'.$i.'</a></li>';
}else{
$pagelist .= '<li ><a href="demo2.php?page='.$i.'">'.$i.'</a></li>';
}
}
//下一页,尾页,当页码大于1,且当前页小于页码时,才有最后一项和下一页
if($page>1 && $pageindex < $page){
$pagelist .= '<li><a href="demo2.php?page='.$page.'">尾页</a></li>';
}
$pagelist .= '<li><a>总'.$page.'页</a></li>';
$pagelist .= '</ul>';
return $pagelist;
}
$pageindex = $_REQUEST['page'];
$pagelist = page(100, 10, $pageindex);
?>
<html>
<head>
<meta charset='utf-8'>
<!-- 新 Bootstrap 核心 CSS 文件 -->
<link href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
<script src="https://cdn.staticfile.org/jquery/2.1.1/jquery.min.js"></script>
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script src="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<?php echo $pagelist;?>
</body>
</html>