thinkPHP框架可添加js事件的分页类customPage.class.php完整实例
发布:smiling 来源: PHP粉丝网 添加日期:2018-08-09 09:46:39 浏览: 评论:0
用于ajax动态加载数据的分页类,分页事件可以动态添加,去除了a链接中的href地址。
- <?php
- // +----------------------------------------------------------------------
- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
- // +----------------------------------------------------------------------
- // | Author: 麦当苗儿<zuojiazi@vip.qq.com><http: www.zjzit.cn=""></http:></zuojiazi@vip.qq.com>
- // +----------------------------------------------------------------------
- namespaceThink;
- classcustomPage{
- public$firstRow;// 起始行数
- public$listRows;// 列表每页显示行数
- public$parameter;//<a href="/tags.php/+%B7%D6%D2%B3/" target="_blank"> 分页</a>跳转时要带的参数
- public$totalRows;// 总行数
- public$totalPages;// 分页总页面数
- public$rollPage = 6;// 分页栏每页显示的页数
- public$lastSuffix= true;// 最后一页是否显示总页数
- private$p ='p'//分页参数名
- private$url =''//当前链接URL
- private$nowPage= 1;
- // 分页显示定制
- private$config=array(
- 'header'=>'<span class="rows">共 %TOTAL_ROW% 条记录</span>',
- '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 =emptyempty($parameter) ?$_GET:$parameter;
- $this->nowPage =emptyempty($_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(!emptyempty($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 ?'<a class="shang" id="'.$up_row.'" href="<a href=" target="_blank" rel="external nofollow">上一页</a>':''
- //下一页
- $down_row=$this->nowPage + 1;
- $down_page= ($down_row<=$this->totalPages) ?'<a class="xia" id="'.$down_row.'" href="javascript:;" rel="external nofollow">下一页</a>':''<!--=$this--->
- //第一页
- $the_first=''
- if($this->totalPages >$this->rollPage && ($this->nowPage -$now_cool_page) >= 1){
- $the_first='<a class="first" id="1" href="javascript:;" rel="external nofollow">第一页</a>'
- }
- //最后一页
- $the_end=''
- //if($this->totalPages > $this->rollPage && ($this->nowPage + $now_cool_page) < $this->totalPages){
- if($this->totalPages >$this->rollPage && ($this->nowPage +$now_cool_page) <$this->totalPages){<!--$this--->
- $the_end='<a class="end" id="'.$this->totalRows.'" href="javascript:;" rel="external nofollow">最后一页</a>'
- }
- for($i= 1;$i<=$this->rollPage;$i++){<!--=$this--->
- if(($this->nowPage -$now_cool_page) <= 0 ){
- $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($page<=$this->totalPages){<!--=$this--->
- $link_page.= ('
- '.$page.'
- ');
- }else{
- break;
- }
- }else{
- if($page> 0 &&$this->totalPages != 1){
- $link_page.= ('
- '.$page.'
- ');
- }
- }
- }
- if(!emptyempty($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(!emptyempty($page_str))$page_str.='
- <br> //phpfensi.com
- <input value="" type="text"><a href="javascript:;" rel="external nofollow" id="go" class="go">跳转</a>'
- return$page_str;
- }
- }
Tags: thinkPHP customPage
相关文章
- ·ThinkPHP中自定义错误页面和提示页面 (2013-11-15)
- ·ThinkPHP中Ajax返回(2013-11-15)
- ·ThinkPHP中处理表单中注意(2013-11-15)
- ·ThinkPHP中I(),U(),$this->post()等函数(2013-11-15)
- ·ThinkPHP中公共函数路径和配置项路径的映射(2013-11-15)
- ·ThinkPHP中公共配置文件和各自项目中的配置文件组合(2013-11-15)
- ·ThinkPHP在控制器里的javascript代码不能执行解决方法(2013-11-29)
- ·ThinkPHP3.0略缩图不能保存到子目录(2013-12-03)
- ·thinkphp的循环结构(2014-01-10)
- ·thinkphp特殊标签使用(2014-01-10)
- ·thinkphp模板输出汇总(2014-01-10)
- ·thinkphp模板的赋值与替换(2014-01-10)
- ·thinkphp连贯操作(2014-01-10)
- ·thinkphp区间查询、统计查询、SQL直接查询(2014-01-10)
- ·thinkphp的普通查询与表达式查询(2014-01-10)
- ·RBAC类在ThinkPHP中的四种使用方法(2014-01-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)