使用也很简单,在控制器中实例化page类,并且调用它的方法,在HTML直接输出变量$pagelist就可以了。
下面附上我自己写的分页代码
一、前端代码
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <style>
- .show_page a{
- height:32px;
- width:30px;
- border:1px solid #DCDCDC;
- background-color:#F3F2F2;
- text-decoration:none;
- text-align:center;
- cursor:pointer;
- border-collapse:collapse;
- font-size:14px;
- }
- span{
- height:32px;
- width:30px;
- border:1px solid #DCDCDC;
- background-color:#F3F2F2;
- text-align:center;
- border-collapse:collapse;
- }
- span.current,.show_page a:hover{
- border:1px solid #F3F2F2;
- background-color:#FFFFFF;
- }
- .disable{
- border:#eee 1px solid;
- color:#ddd;
- }
- </style>
- </head>
- <body>
- {$page_banner}
- </body>
- </html>
二、后端代码
- //传入页码
- public function forPage(){
- $page = I('get.page',1);//初始值为1
- $allMessages= D('Message')->getAll(0,$page);
- $allMessages = $this->change($allMessages);
- $number = D("message")->getcount();
- $number = ceil($number['number']/1);//向上取整
- $show_page = 3;//显示页码数
- $page_offset = ($show_page-1)/2;
- $page_banner = "<div class='show_page'>";
- if($page>1){
- $page_banner .=" <a href='".$_SERVER['PHP_SELF']."?page=".($page-1)."'><</a>";
- }else{
- $page_banner .= "<span class='disable'><</span>";
- }
- $start = 1;
- $end = $number;
- if($number > $show_page){
- //头部
- if($page > $page_offset+1){
- $page_banner .="<span class='disable'>...</span>";
- }
- if($page > $page_offset){
- $start = $page-$page_offset;
- $end = $number>$page+$page_offset?$page+$page_offset:$number;
- }else{
- $start = 1;
- $end = $number>$show_page?$show_page:$number;
- }
- //尾部省略
- if($page+$page_offset > $number){
- $start = $start-($page+$page_offset-$end);
- }
- }
- for($i=$start;$i<=$end;$i++){
- if($i == $page){
- $page_banner .= "<span class='current'>{$i}</span>";
- }else{
- $page_banner .= "<a href='".$_SERVER['PHP_SELF']."?page=".($i)."'>{$i}</a>";
- }
- }
- if($show_page<$number && $page<$number-$page_offset){
- $page_banner .= "<span class='disable'>...</span>";
- }
- if($page < $number){
- $page_banner .="<a href='".$_SERVER['PHP_SELF']."?page=".($page+1)."'>></a>";
- }else{
- $page_banner .= "<span class='disable'>></span>";
- }
- $this->assign('number',$number);//总页数
- $this->assign('page',$page);//当前页
- $this->assign('page_banner',$page_banner);
- $this->display();
- }
三、sql语言
- //获取留言(按时间先后顺序排列)
- public function getAll($page){
- $where["comment_id"] = 0;//查找所有comment_id为0的数据
- $allMessages = $this->relation('user')->where($where)->order('time desc')->page("$page,6")->select();
- if(empty($allMessages)){
- return array();
- }
- return $allMessages;
- }