php一个不错的分页
2013-08-25 11:41
260 查看
1.分页源码
2.php调用
3.效果图:
<?php class PageView{ /**页码**/ public $pageNo = 1; /**页大小**/ public $pageSize = 20; /**共多少页**/ public $pageCount = 0; /**总记录数**/ public $totalNum = 0; /**偏移量,当前页起始行**/ public $offSet = 0; /**每页数据**/ public $pageData = array(); /**是否有上一页**/ public $hasPrePage = true; /**是否有下一页**/ public $hasNextPage = true; public $pageNoList = array(); public $jsFunction ='jsFunction'; /** * * @param unknown_type $count 总行数 * @param unknown_type $size 分页大小 * @param unknown_type $string */ public function __construct($count=0, $size=20,$pageNo=1,$pageData =array(),$jsFunction='jsFunction'){ $this->totalNum = $count;//总记录数 $this->pageSize = $size;//每页大小 $this->pageNo = $pageNo; //计算总页数 $this->pageCount = ceil($this->totalNum/$this->pageSize); $this->pageCount = ($this->pageCount<=0)?1:$this->pageCount; //检查pageNo $this->pageNo = $this->pageNo == 0 ? 1 : $this->pageNo; $this->pageNo = $this->pageNo > $this->pageCount? $this->pageCount : $this->pageNo; //计算偏移 $this->offset = ( $this->pageNo - 1 ) * $this->pageSize; //计算是否有上一页下一页 $this->hasPrePage = $this->pageNo == 1 ?false:true; $this->hasNextPage = $this->pageNo >= $this->pageCount ?false:true; $this->pageData = $pageData; $this->jsFunction = $jsFunction; } /** * 分页算法 * @return */ private function generatePageList(){ $pageList = array(); if($this->pageCount <= 9){ for($i=0;$i<$this->pageCount;$i++){ array_push($pageList,$i+1); } }else{ if($this->pageNo <= 4){ for($i=0;$i<5;$i++){ array_push($pageList,$i+1); } array_push($pageList,-1); array_push($pageList,$this->pageCount); }else if($this->pageNo > $this->pageCount - 4){ array_push($pageList,1); array_push($pageList,-1); for($i=5;$i>0;$i--){ array_push($pageList,$this->pageCount - $i+1); } }else if($this->pageNo > 4 && $this->pageNo <= $this->pageCount - 4){ array_push($pageList,1); array_push($pageList,-1); array_push($pageList,$this->pageNo -2); array_push($pageList,$this->pageNo -1); array_push($pageList,$this->pageNo); array_push($pageList,$this->pageNo + 1); array_push($pageList,$this->pageNo + 2); array_push($pageList,-1); array_push($pageList,$this->pageCount); } } return $pageList; } /*** * 创建分页控件 * @param * @return String */ public function echoPageAsDiv(){ $pageList = $this->generatePageList(); $pageString ="<div class='pagination'><div class='page-bottom'>"; if(!empty($pageList)){ if($this->pageCount >1){ if($this->hasPrePage){ $pageString = $pageString ."<a class='page-next' href=\"javascript:" .$this->jsFunction . "(" . ($this->pageNo-1) . ")\">上一页</a>"; } foreach ($pageList as $k=>$p){ if($this->pageNo == $p){ $pageString = $pageString ."<span class='page-cur'>" . $this->pageNo . "</span>"; continue; } if($p == -1){ $pageString = $pageString ."<span class='page-break'>...</span>"; continue; } $pageString = $pageString ."<a href=\"javascript:" .$this->jsFunction . "(" . $p . ")\">" . $p . "</a>"; } if($this->hasNextPage){ $pageString = $pageString ."<a class='page-next' href=\"javascript:" .$this->jsFunction . "(" . ($this->pageNo+1) . ")\">下一页</a>"; } } } $pageString = $pageString .("</div></div>"); return $pageString; } } ?>
2.php调用
$pageNo = $_GET['pageNo']; if(empty($pageNo)){ $pageNo = 1; } //分页数据 $pageData = News::getNewsPage($pageNo,$pageSize); //取得总行数 $count = News::getNewsCount(); //创建分页器 $p = new PageView($count['0']['TOTAL'],$pageSize,$pageNo,$pageData); //生成页码 $pageViewString = $p->echoPageAsDiv();
3.效果图:
相关文章推荐
- 一个确实不错的分页存储过程.
- PHP实现分页的一个示例
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- php初探: 一个简单的mysql数据库分页的程序模板
- 一个典型的PHP分页实例代码
- 非常不错的一个JS分页效果代码,值得研究
- 一个老外不错的修改过的PHP 5.3.6
- 一个简单的PHP分页代码
- PHP分页初探 一个最简单的PHP分页代码的简单实现
- 一个不错的分页控件
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- php中存储IP的一个不错的方法
- 一个不错的PHP文件页面缓存类
- 一个不错的php图片处理类EasyPhpThumbnail Class
- 一个不错的PHP面试题,给于大家学习方向