- <?PHP
- classPage{
- //分页栏每页显示的页数
- public$rollPage=10;
- //页数跳转时要带的参数
- public$parameter;
- //默认列表每页显示行数
- public$listRows=20;
- //起始行数
- public$firstRow;
- //分页总页面数
- protected$totalPages;
- //总行数
- protected$totalRows;
- //当前页数
- protected$nowPage;
- //分页的栏的总页数
- protected$coolPages;
- //分页显示定制
- protected$config=array('header'=>'条记录','prev'=>'上一页','next'=>'下一页','first'=>'首页','last'=>'尾页','theme'=>'%totalRow%%header%%nowPage%/%totalPage%页%upPage%%first%%prePage%%linkPage%%downPage%%nextPage%%end%%ajax%');
- //默认分页变量名
- protected$varPage;
- //分页外层div的id
- protected$pagesId;
- //分页内容替换目标ID
- protected$target;
- /**
- +----------------------------------------------------------
- *架构函数
- +----------------------------------------------------------
- *@accesspublic
- +----------------------------------------------------------
- *@paramarray$totalRows总的记录数
- *@paramarray$listRows每页显示记录数
- *@paramarray$parameter分页跳转的参数
- +----------------------------------------------------------
- */
- publicfunction__construct($totalRows,$listRows='',$parameter='',$target='',$pagesId=''){
- $this->totalRows=$totalRows;
- $this->parameter=$parameter;
- $this->target=$target;
- $this->pagesId=$pagesId;
- $this->varPage=C('VAR_PAGE')?C('VAR_PAGE'):'p';
- if(!empty($listRows)){
- $this->listRows=intval($listRows);
- }
- $this->totalPages=ceil($this->totalRows/$this->listRows);//总页数
- $this->coolPages=ceil($this->totalPages/$this->rollPage);
- $this->nowPage=!empty($_GET[$this->varPage])?intval($_GET[$this->varPage]):1;
- if(!empty($this->totalPages)&&$this->nowPage>$this->totalPages){
- $this->nowPage=$this->totalPages;
- }
- $this->firstRow=$this->listRows*($this->nowPage-1);
- }
- publicfunctionsetConfig($name,$value){
- if(isset($this->config[$name])){
- $this->config[$name]=$value;
- }
- }
- /**
- +----------------------------------------------------------
- *分页显示输出
- +----------------------------------------------------------
- *@accesspublic
- +----------------------------------------------------------
- */
- publicfunctionshow(){
- if(0==$this->totalRows)
- return'';
- $p=$this->varPage;
- $nowCoolPage=ceil($this->nowPage/$this->rollPage);
- $url=$_SERVER['REQUEST_URI'].(strpos($_SERVER['REQUEST_URI'],'?')?'':"?").$this->parameter;
- $parse=parse_url($url);
- if(isset($parse['query'])){
- parse_str($parse['query'],$params);
- unset($params[$p]);
- $url=$parse['path'].'?'.http_build_query($params);
- }
- //上下翻页字符串
- $upRow=$this->nowPage-1;
- $downRow=$this->nowPage+1;
- if($upRow>0){
- $upPage="<ahref='".$url."&".$p."=$upRow'>".$this->config['prev']."</a>";
- }else{
- $upPage="";
- }
- if($downRow<=$this->totalPages){
- $downPage="<ahref='".$url."&".$p."=$downRow'>".$this->config['next']."</a>";
- }else{
- $downPage="";
- }
- //<<<>>>
- if($nowCoolPage==1){
- $theFirst="";
- $prePage="";
- }else{
- $preRow=$this->nowPage-$this->rollPage;
- $prePage="<ahref='".$url."&".$p."=$preRow'>上".$this->rollPage."页</a>";
- $theFirst="<ahref='".$url."&".$p."=1'>".$this->config['first']."</a>";
- }
- if($nowCoolPage==$this->coolPages){
- $nextPage="";
- $theEnd="";
- }else{
- $nextRow=$this->nowPage+$this->rollPage;
- $theEndRow=$this->totalPages;
- $nextPage="<ahref='".$url."&".$p."=$nextRow'>下".$this->rollPage."页</a>";
- $theEnd="<ahref='".$url."&".$p."=$theEndRow'>".$this->config['last']."</a>";
- }
- //12345
- $linkPage="";
- for($i=1;$i<=$this->rollPage;$i++){
- $page=($nowCoolPage-1)*$this->rollPage+$i;
- if($page!=$this->nowPage){
- if($page<=$this->totalPages){
- $linkPage.=" <ahref='".$url."&".$p."=$page'> ".$page." </a>";
- }else{
- break;
- }
- }else{
- if($this->totalPages!=1){
- $linkPage.=" <spanclass='current'>".$page."</span>";
- }
- }
- }
- //<script>jquery分页</script>
- $ajax='';
- if($this->target){
- $ajax=<<<eco
- <script>
- jQuery(function($){
- $('#{$this->pagesId}a').click(function(){
- $.ajax({
- url:$(this).attr('href'),dataType:"html",type:"POST",cache:false,success:function(html){
- $("#{$this->target}").html(html);
- }
- });
- returnfalse;
- });
- });
- </script>
- eco;
- }
- $pageStr=str_replace(
- array(
- '%header%','%nowPage%','%totalRow%','%totalPage%','%upPage%','%downPage%','%first%','%prePage%','%linkPage%','%nextPage%','%end%','%ajax%'
- ),array(
- $this->config['header'],$this->nowPage,$this->totalRows,$this->totalPages,$upPage,$downPage,$theFirst,$prePage,$linkPage,$nextPage,$theEnd,$ajax
- ),$this->config['theme']
- );
- return$pageStr;
- }
- }
- publicfunctionajaxPage(){
- $tz=M('MoneyLog');
- import('ORG.Util.ajaxpage');
- $count=$tz->count();
- $page=newPage($count,10,'type=1','ajax_div','ajax_page_div');
- $data=$tz->limit($page->firstRow,$page->listRows)->select();
- $pagestr=$page->show();
- $this->assign('list',$data);
- $this->assign('show',$pagestr);
- if(IS_AJAX){
- exit($this->fetch('list'));
- }
- $this->display('list');
- }
静态页面:
- <scripttype="text/javascript"src="/Public/shouye/js/jquery-1.7.1.min.js"></script>
- <divid="ajax_div">
- <table>
- <tr>
- <td>性别</td><td>年龄</td><td>单位</td>
- </tr>
- <?PHPforeach($listas$v){?>
- <tr>
- <td><?PHPecho$v['total_money'];?></td>
- <td><?PHPecho$v['time'];?></td>
- <td><?PHPecho$v['ip'];?></td>
- </tr>
- <?PHP}?>
- </table>
- <div><divid="ajax_page_div">{$show}</div></div>
- </div>
- <script>
- $("body").delegate("#ajax_page_diva","click",function(){
- $.get(this.href,function(html){
- $('#ajax_div').html(html);
- });
- returnfalse;
- });
- });
- </script>