phpclass 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$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 ){ for($i=0;$i$this->pagecount;$i++){ array_push($pagelist,$i+1); } }else{ if($this->pageno ){ for($i=0;$i$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 =; if(!empty($pagelist)){ if($this->pagecount >1){ if($this->hasprepage){ $pagestring = $pagestring .$this->jsfunction . ( . ($this->pageno-1) . )\>上一页; } foreach ($pagelist as $k=>$p){ if($this->pageno == $p){ $pagestring = $pagestring . . $this->pageno . ; continue; } if($p == -1){ $pagestring = $pagestring ....; continue; } $pagestring = $pagestring .$this->jsfunction . ( . $p . )\> . $p . ; } if($this->hasnextpage){ $pagestring = $pagestring .$this->jsfunction . ( . ($this->pageno+1) . )\>下一页; } } } $pagestring = $pagestring .(
); return $pagestring; }}?>
{font-family: tahoma;overflow: hidden; padding-top: 12px; text-align: center;}.pagination-tab { margin-bottom: 20px;}.pagination a, .pagination .page-cur, .pagination .page-prev_g, .pagination .page-prev, .pagination .page-next, .pagination .page-next_g, .pagination .page-break, .pagination .page-skip { display: inline-block;font-family: tahoma,simsun,arial; height: 22px;line-height:22px; margin: 0; min-width: 16px;padding: 0 5px; text-align: center; vertical-align: top; white-space: nowrap;}.pagination a, .pagination .page-prev_g, .pagination .page-prev, .pagination .page-next, .pagination .page-next_g, .pagination .page-cur, .pagination .page-break { border: 1px solid #ed3d83; color:#e9357d; font-weight:bold;}.pagination a:hover { border: 1px solid #ed3d83;text-decoration: none; background-color:#f95f9d; color:#fff;}.pagination .page-prev_g, .pagination .page-prev, .pagination .page-next, .pagination .page-next_g { width: 36px; background-image: url(../static/img/page.gif);}.pagination .page-prev { background-position: -0px -38px; padding-left: 16px;}.pagination .page-prev_g { background-position:0px -59px; padding-left: 16px; color:#cbcbcb; font-weight:normal;}.pagination .page-next { background-position: 0px 0px; padding-right: 16px; font-weight:normal;}.pagination .page-next_g { background-position: -0px -19px; padding-right: 16px; color:#cbcbcb;}.pagination .page-cur {background-color: #f95f9d; border: 1px solid #ed3d83;color: #fff;font-weight: bold;}.pagination .page-break {border: medium none; background:none transparent; color:#333;}-->
//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();