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 输入格式: 一 ...
随机推荐
- Cactus借助Jetty测试Servlet
这是一个WebProject,但不需要web.xml,因为用不到它 首先是待测试的LoginServlet.java package com.jadyer.servlet; import java.i ...
- PetShop 4.0学习笔记:消息队列MSMQ
直到今天才知道,在我们每天都在用的Window系统里还有这么好用的一个编程组件:消息队列.它能够解决在大数据量交换的情况下的性能问题,特别是BS系统的数据库性能.而且它的异步处理方式能给程序员最大的便 ...
- java缓存算法【转】
http://my.oschina.net/u/866190/blog/188712 提到缓存,不得不提就是缓存算法(淘汰算法),常见算法有LRU.LFU和FIFO等算法,每种算法各有各的优势和缺点及 ...
- 动作之CCActionInstant(立即动作)家族
立即动作就是不需要时间,马上就完成的动作.立即动作的共同基类是CCActionInstant.CCActionInstant的常用子类有: CCCallFunc:回调函数包装器 CCFlipX:X轴翻 ...
- MySQL【第三篇】数据类型
一.整型 整型的每一种都有无符号(unsigned)和有符号(signed)两种类型. MySQL数据类型 含义 tinyint(m) 1个字节表示:signed(-128~127):unsigned ...
- Default route and zero route
A default route of a computer that is participating in computer networking is the packet forwarding ...
- iOS——GCD多线程
1> 概述 Grand Central Dispatch (GCD)是Apple开发的一种多核编程技术.主要用于优化应用程序以支持多核处理器以及其他对称多处理系统. GCD提供函数实现多线程开发 ...
- oracle数据库入门sql语句
数据库: 命名规范问题 依然是 _流.看来也确实应该抽空 来处理一下 今天吧,不行时间不能浪费.要更加专注.累了 就睡,醒来 就 好好 弄东西.白天 哪怕累一些,强度 大一些,晚上也可以抽空出去.溜溜 ...
- Magento 的程序架构与流程
以下是分别详细解读分析程序的各层次源码: MAGENTO_ROOT: //入口文件 /index.php -----–| 1.判断php版本是否大于5.22.引入Magento主要的中心类/app/M ...
- JavaScript平常会跳的坑系列(一)
function Foo() { //定义foo函数 getName = function () { console.log('1');}; console.log(this); return thi ...