thinkPHP框架可添加js事件的分页类customPage.class.php完整实例

作者:袖梨 2022-06-24

用于ajax动态加载数据的分页类,分页事件可以动态添加,去除了a链接中的href地址。

代码如下 复制代码

// +----------------------------------------------------------------------

// | ThinkPHP [ WE CAN DO IT JUST THINK IT ]

// +----------------------------------------------------------------------

// | Copyright (c) 2006-2014 http://*thi**nkphp.cn All rights reserved.

// +----------------------------------------------------------------------

// | Licensed ( http://www.**apa*che.org/licenses/LICENSE-2.0 )

// +----------------------------------------------------------------------

// | Author: 麦当苗儿

// +----------------------------------------------------------------------

namespaceThink;

classcustomPage{

public$firstRow;// 起始行数

public$listRows;// 列表每页显示行数

public$parameter;// 分页跳转时要带的参数

public$totalRows;// 总行数

public$totalPages;// 分页总页面数

public$rollPage = 6;// 分页栏每页显示的页数

public$lastSuffix= true;// 最后一页是否显示总页数

private$p ='p'//分页参数名

private$url =''//当前链接URL

private$nowPage= 1;

// 分页显示定制

private$config=array(

'header'=>'共 %TOTAL_ROW% 条记录',

'prev' =>'上一页',

'next' =>'下一页',

'first'=>Ƈ...',

'last' =>'...%TOTAL_PAGE%',

'theme'=>'%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',

);

/**

* 架构函数

* @param array $totalRows 总的记录数

* @param array $listRows 每页显示记录数

* @param array $parameter 分页跳转的参数

*/

publicfunction__construct($totalRows,$listRows=20,$parameter=array()) {

C('VAR_PAGE') &&$this->p = C('VAR_PAGE');//设置分页参数名称

/* 基础设置 */

$this->totalRows =$totalRows;//设置总记录数

$this->listRows =$listRows;//设置每页显示行数

$this->parameter =empty($parameter) ?$_GET:$parameter;

$this->nowPage =empty($_GET[$this->p]) ? 1 :intval($_GET[$this->p]);

$this->totalPages =ceil($this->totalRows /$this->listRows);//总页数

if($this->nowPage>$this->totalPages) {

$this->nowPage =$this->totalPages ;

}

$this->nowPage =$this->nowPage>0 ?$this->nowPage : 1;

$this->firstRow =$this->listRows * ($this->nowPage - 1);

}

/**

* 定制分页链接设置

* @param string $name 设置名称

* @param string $value 设置值

*/

publicfunctionsetConfig($name,$value) {

if(isset($this->config[$name])) {

$this->config[$name] =$value;

}

}

/**

* 生成链接URL

* @param integer $page 页码

* @return string

*/

privatefunctionurl($page){

returnstr_replace(urlencode('[PAGE]'),$page,$this->url);

}

/**

* 组装分页链接

* @return string

*/

publicfunctionshow() {

if(0 ==$this->totalRows)return''

/* 生成URL */

$this->parameter[$this->p] ='[PAGE]'

$this->url = U(ACTION_NAME,$this->parameter);

/* 计算分页信息 */

if(!empty($this->totalPages) &&$this->nowPage >$this->totalPages) {

$this->nowPage =$this->totalPages;

}

/* 计算分页临时变量 */

$now_cool_page =$this->rollPage/2;

$now_cool_page_ceil=ceil($now_cool_page);

$this->lastSuffix &&$this->config['last'] =$this->totalPages;

//上一页

$up_row=$this->nowPage - 1;

$up_page=$up_row> 0 ?'':''

//下一页

$down_row=$this->nowPage + 1;

$down_page= ($down_rowtotalPages) ?'':''

//第一页

$the_first=''

if($this->totalPages >$this->rollPage && ($this->nowPage -$now_cool_page) >= 1){

$the_first=''

}

//最后一页

$the_end=''

//if($this->totalPages > $this->rollPage && ($this->nowPage + $now_cool_page) totalPages){

if($this->totalPages >$this->rollPage && ($this->nowPage +$now_cool_page) totalPages){

$the_end=''

}

for($i= 1;$irollPage;$i++){

if(($this->nowPage -$now_cool_page)

$page=$i;

}elseif(($this->nowPage +$now_cool_page- 1) >=$this->totalPages){

$page=$this->totalPages -$this->rollPage +$i;

}else{

$page=$this->nowPage -$now_cool_page_ceil+$i;

}

if($page> 0 &&$page!=$this->nowPage){

if($pagetotalPages){

$link_page.= ('

  • '.$page.'

  • ');

}else{

break;

}

}else{

if($page> 0 &&$this->totalPages != 1){

$link_page.= ('

  • '.$page.'

  • ');

}

}

}

if(!empty($link_page))$link_page='

  • '.$link_page.'

'

//替换分页内容

$page_str=str_replace(

array('%HEADER%','%NOW_PAGE%','%UP_PAGE%','%DOWN_PAGE%','%FIRST%','%LINK_PAGE%','%END%','%TOTAL_ROW%','%TOTAL_PAGE%'),

array($this->config['header'],$this->nowPage,$up_page,$down_page,$the_first,$link_page,$the_end,$this->totalRows,$this->totalPages),

$this->config['theme']);

$page_str= trim($page_str);

if(!empty($page_str))$page_str.='


'

return$page_str;

}

}

相关文章

精彩推荐