thinkphp分页格式的完全自定义,直接输入数字go到输入数字页
实现分页效果如下:

 public function show1() {
        if(0 == $this->totalRows) return '';
        /* 生成URL */
        $this->parameter[$this->p] = '[PAGE]';
        $this->url = U(ACTION_NAME, $this->parameter);
        /* 计算分页信息 */
        $this->totalPages = ceil($this->totalRows / $this->listRows); //总页数
        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 ? '<a class="prev" href="' . $this->url($up_row) . '">' . 上一页 . '</a>' : '<a class="prev" href="javascript:(0);">' . 上一页 . '</a>';
        //下一页
        $down_row  = $this->nowPage + 1;
        $down_page = ($down_row <= $this->totalPages) ? '<a class="next" href="' . $this->url($down_row) . '">' .下一页 . '</a>' : '<a class="next" href="javascript:(0);">' .下一页 . '</a>';
        //第一页
        $the_first=$this->nowPage > 1 ? '<a class="first" href="' . $this->url(1) . '">' . 首页 . '</a>' : '<a class="first" href="javascript:(0);">' . 首页 . '</a>';
        //最后一页
        $the_end = $this->nowPage < $this->totalPages ? '<a class="end" href="' . $this->url($this->totalPages) . '">' .末页. '</a>' : '<a class="end" href="javascript:(0);">' .末页. '</a>';
        //数字连接
        $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']);
        return "{$page_str}";
    }
在定义的model中定义查询数据库中数据并分页
public function getDocPageList($table,$where,$p, $pageSize,$order='docid desc'){
        $list= M($table)->where($where)->order($order)
                            ->page($p.','.$pageSize)
                            ->select();
        $count = M($table)->field('*')
                        ->where($where)
                        ->order($order)
                        ->count();
        $Page = new \Think\Page($count, $pageSize);
        $module_name = '/' . MODULE_NAME . '/' . CONTROLLER_NAME . '/' . ACTION_NAME;//此处为获取路径,模块名/控制器名/方法名
       //$page便是上面效果的静态代码显示
     $Page->setConfig('header','<p><span>%NOW_PAGE%</span>/<span title="%TOTAL_PAGE%" class="all">%TOTAL_PAGE%</span></p>
            <p>转到<input type="text" id="page_num" class="txt_page"  />页</p>
            <a class="gopage" href="'.$module_name.'/p/">GO</a>');
        $Page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
        $show = $Page->show1();
        $result['pages'] = $show;
        $result['list'] = $list;
        $result['count'] = $count;
        return $result;
    }
以上分页的css样式如下
/*分页*/
.d_page{width: 700px;clear: both;margin:0px auto;padding-top:20px;}
.d_page a,.d_page p{display:inline-block;margin:0px 8px;}
.d_page a,.d_page input{border:1px solid #e6e6e6;padding:5px 10px;}
.d_page input{width:40px}
.d_page a:hover{background:#d57a22;border:1px solid #d57a22;color:#fff;}
在控制器中调用上面model下的函数,此处我以查询user数据表为例:
//定义对象,引用控制器
public function __construct() {
parent::__construct();
$this->docinfo_model = new \Common\Model\DocinfoModel();
} $result = $this->docinfo_model->getDocPageList('user',$where,$p, $pageSize,$order); $this->assign("doclist", $result['list']);
$this->assign("count", $result['count']);
$this->assign("pages", $result['pages']); $this->display();
在模板中输出的时候直接输出pages
<div>{$pages}</div>
使用jquery实现分页的跳转
<script src='__PUBLIC__/js/jquery-1.8.3.min.js'></script>
<script>
$(function(){
//分页跳转
$('#page_num').blur(function(){
var url=$('.gopage').attr('href');
var strs=url.substr(0); var value=this.value;
var all=$('.all').attr("title");
var i=parseFloat(all);//将字符转化为数字 if(value<=i && !isNaN(value) && value>0){
value=Math.ceil(value);
}else{
value='';
}
var nuwurl=strs+value;
$(".gopage").attr("href",nuwurl);
}) });
</script>
thinkphp分页格式的完全自定义,直接输入数字go到输入数字页的更多相关文章
- ThinkPHP 分页功能梳理
		
最近在开发一个项目,使用了国内流行的ThinkPHP框架,我之前没怎么用过这个框架,也是临时抱佛脚,用的不怎么样?可能理解不是很深刻,如果有说的不对或不正确的地方,请大家多包涵,多指教. ThinkP ...
 - thinkphp分页实现
		
以上为我对于thinkphp分页的实现效果,两种方法,一种调用公共函数中的函数方法(参考http://www.cnblogs.com/tianguook/p/4326613.html),一种是在模型中 ...
 - ThinkPHP分页使用例子(二十一)
		
原文:ThinkPHP分页使用例子(二十一) ThinkPHP分页使用 PHP代码: public function fenye(){ $User = M('Leyangjun'); // 实例化Us ...
 - 分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件
		
分页技巧__改进JSP页面中的公共分页代码 自定义过滤条件问题 只有一个url地址不一样写了很多行代码 public>>pageView.jspf添加 分页技巧__实现分页时可以有自定义的 ...
 - ThinkPHP分页实例
		
ThinkPHP分页实例 (2014-09-20 15:34:36) 很多人初学thinkphp时,不太熟悉thinkphp的分页使用方法,现在将自己整理的分页方法分享下,有需要的朋友可以看看. ...
 - thinkphp 分页类 url 编码处理
		
在做thinkphp分页的时候 thinkphp 中的分页 有一个小问题 就是 在有form 表单 搜索中文的时候,点击下一页的话 中文会被转换成编码. 如图: 最直接的方法就是 直接修改 thin ...
 - iOS TextField输入限制(限制长度、只能输入数字,只能输入数字字母……)
		
项目中各个地方都会用到TextField,textField的输入也会有各种需求,各种限制,每次用到的时候要重写一遍这些限制,导致各种垃圾代码,各种重复,有一天,我终于看不下去了,于是把textFie ...
 - OJ题:输入一个多位的数字,求各数位相加。
		
题目内容: 输入一个多位的数字,1求各数位相加. 例如输入12345,则计算1+2+3+4+5=15 输入格式: 一个整数 输出格式: 一个整数 输入样例: 1234567890 输出样例: 45 时 ...
 - C语言:输入一个多位的数字,12345,求各位相加1+2+3+4+5=15
		
题目: 输入一个多位的数字,12345,求各位相加1+2+3+4+5=15(10分)题目内容: 输入一个多位的数字,1求各数位相加. 例如输入12345,则计算1+2+3+4+5=15 输入格式: 一 ...
 
随机推荐
- servlet三大作用域:request,session,application
			
javaweb开发中Servlet三大域对象的应用(request.session.application(ServletContext)). 1. request request是表示一个请求,只要 ...
 - IOS 获取屏幕尺寸
			
CGRect frame = [[UIScreen mainScreen] bounds]; NSLog(@"frame :%@",frame); 这样输入是null NSL ...
 - MySQL参数优化
			
目前针对MySQL数据库进行了一些参数优化,具体如下: my.ini / my.cnf 参数说明 #使用查询缓存 query_cache_size=100M # ...
 - 【Android】BroadCast广播机制应用与实例
			
如何编写广播接收器 第一步:需要继承BroadcastReceiver类,覆写其中的onReceive()方法. class MyBroadcastReceiver extends Broadcast ...
 - Hash表
			
Hash表 Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组.链表以及二叉排序树等相比较有很明显的区别,它能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字 ...
 - VC++深入详解-第二章学习心得
			
由于之前看过C++的一些知识,所以这一章就挑一点以前比较不太在意的进行记录 首先是虚函数,纯虚函数 虚函数用关键字virtual申明,我理解成为派生类提供覆盖 纯虚函数virtual xxx()=xx ...
 - Git 安装与简单使用(新手必看)
			
1.安装git,默认下一步下一步等待安装完成 2.设置全局账号 安装之后去快速启动栏点击GitBash git config --global user.name "xiefeng" ...
 - Spring MVC 3.0.5+Spring 3.0.5+MyBatis3.0.4全注解实例详解(五)
			
这是本系列的最后一篇,主要讲一下FreeMarker模板引擎的基本概念与常用指令的使用方式. 一.FreemMarker基本概念 FreemMarker是一个用Java语言编写的模板引 ...
 - uedoc 源码解析
			
思路分析 node 包使用 1. JSON5 2. art-template 3.
 - javascript进击(八)JSON
			
JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. 什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Ob ...