thinkphp自定义分页效果
TP自带了一个分页函数,挺方便使用的。
下面是我的使用方法:
/*****************分页显示start*************************/
$arr_page=$this->page($user,1);
$show=$arr_page['show'];
$Page=$arr_page['Page'];
$article = $user->order('now')->limit($Page->firstRow.','.$Page->listRows)->select();
if(!empty($_POST['seach_classify'])){
$seach_classify=$_POST['seach_classify'];
$arr_page=$this->page($user,1,"classify='$seach_classify'");
$show=$arr_page['show'];
$Page=$arr_page['Page'];
$Page->setconfig("prev","上"); dump($Page);
$article=$user->order("now")->limit($Page->first.','.$Page->prev)->where("classify='$seach_classify'")->select();
}
//dump($list);
/*****************分页显示end************************/
结合自己包装的一个分页函数:
public function page($db,$num,$where){
$count = $db->where($where)->count();//
$Page = new \Think\Page($count,$num);// 实例化分页类 传入总记录数和每页显示的记录数(25)
$show = $Page->show();// 分页显示输出
return $arr_page = array(
"show"=>$show,
"Page"=>$Page,
"count"=>$count,
);
}
即可实现查询和按条件查询分页,这里的按条件查询分页,虽然能差出数据,但再点击查询的分页链接就返回原来的无条件查询了,
我这里判断的是$_POST['seach_classify']不为空才查询,不过可以理解,如果点击了查询分页链接,页面会刷新,$_POST['seach_classify']就返回是空的了,
现在还想不出解决办法,望高手解答!
下面是我自定义的分页效果制作:
需要修改底层的thinkphp/Library/Think/Page.class.php,修改如下:
// 分页显示定制
private $config = array(
'header' => '<span class="rows">共 %TOTAL_ROW% 篇文章</span>',//可以直接修改这里,也可以在你的方法里面设置$page->setconfig("header","篇文章")
'prev' => '上一页',//这里同上
'next' => '下一页',
'first' => '返回首页',
'last' => '...%TOTAL_PAGE%',
'theme' => '%FIRST% %LINK_PAGE% %HEADER% %END%',//这里自定义你的分页输出内容,内容在下面
);
//替换分页内容
$page_str = str_replace(
array('%HEADER%', '%NOW_PAGE%', '%UP_PAGE%', '%DOWN_PAGE%', '%FIRST%', '%LINK_PAGE%', '%END%', '%TOTAL_ROW%', ),//这里是自定义所需内容
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}";
下面是效果自定义:
//数字连接
$link_page = "";
for($i = 1; $i <= $this->rollPage; $i++){
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){
$link_page .= '<a class="num" href="' . $this->url($page) . '"><div>' . $page . '</div></a>';//这里的div我自己加的,以便用css定制效果!css见下面
}else{
break;
}
}else{
if($page > 0 && $this->totalPages != 1){
$link_page .= '<span class="current"><div id="nowPage">' . $page . '</div></span>';
}
}
}
css:
div.fenye{background:; text-align:center; width:800px;margin:15px -400px 0 0; right:50%; position:absolute; box-shadow:0 0 5px #888;}
div.fenye div{transition:background 0.5s,box-shadow 1s; text-align:center; width:40px; height:25px; float:left;color:#FFF}
div.fenye div:hover{background:#FFF; text-align:center; float:left; color:#000;box-shadow:0 0px 15px #FFF;}
div#nowPage{box-shadow:0 0px 15px #FFF;color:#000;background:#FFF;}
span.rows{color:#666;};
效果图:

thinkphp自定义分页效果的更多相关文章
- ThinkPHP自定义分页模板
TpPageHelper.php <?php namespace tool; use think\Paginator; class TpPageHelper extends Paginator ...
- thinkphp自定义分页类
先来看下这个分页的样式,没写css,确实丑 什么时候写样式再来上传下css吧...... 就是多一个页面跳转功能 先把这个代码贴一下 <?php namespace Component; cla ...
- thinkphp ajax 无刷新分页效果的实现
思路:先做出传统分页效果,然后重新复制一份Page.class.php类,对它进行修改,把js中的函数传到page类中,把上一页.下一页.首页.尾页.链接页中的url地址改成js控制的函数,模板页面中 ...
- jquery自定义插件实现分页效果
这节介绍如何自定义jquery插件,实现分页效果,话不多说,先看看实现的效果: 分页插件 实现的代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTM ...
- 使用ThinkPHP实现分页功能
前几篇(上传,缩略图,验证码,自动验证表单)文章介绍的功能实现都是基于ThinkPHP框架封装好的类进行实现的,所以这次自己写一个分页类在框架中使用. 首先在根目录建一个Tools文件夹,在Tools ...
- Python之路【第十九篇】自定义分页实现(模块化)
自定义分页 1.目的&环境准备 目的把分页写成一个模块的方式然后在需要分页的地方直接调用模块就行了. 环境准备Django中生成一个APP并且注册,配置URL&Views 配置URL ...
- C# DataGridView自定义分页控件
好些日子不仔细写C#代码了,现在主要是Java项目,C#.Net相关项目不多了,有点手生了,以下代码不足之处望各位提出建议和批评. 近日闲来无事想研究一下自定义控件,虽然之前也看过,那也仅限于皮毛,粗 ...
- MVC下分页的自定义分页一种实现
1.引言 在MVC开发中我们经常会对数据进行分页的展示.通过分页我们可以从服务端获取指定的数据来进行展示.这样既节约了数据库查询的时间也节约了网络传输的数据量.在MVC开发中使用的比较多的应该是MVC ...
- MVC自定义分页
MVC自定义分页 之前我发表了一篇MVC无刷新分页的文章,里面用的是MvcPager控件,但是那个受那个控件限制,传值只能用PagedList,各方面都受到了限制,自由度不够高,现在还是做MVC无刷新 ...
随机推荐
- Linux内核分析--操作系统是如何工作的
“平安的祝福 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ” 一.初 ...
- C# Stream 和 byte[] 之间的转换(文件流的应用)
一. 二进制转换成图片 MemoryStream ms = new MemoryStream(bytes); ms.Position = ; Image img = Image.FromStream( ...
- 《DSP using MATLAB》 示例Example4.1
今天开始看第4章,从开始看这本书到现在,过去一个多月,收获不少,继续坚持.
- jQuery-品牌列表案例
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Codeforces Round #343 (Div. 2)
居然补完了 组合 A - Far Relative’s Birthday Cake import java.util.*; import java.io.*; public class Main { ...
- javaScript入门第一天
JavaScript提供七种不同的data types(数据类型),它们是undefined(未定义), null(空), boolean(布尔型), string(字符串), symbol(符号), ...
- Codeforces 467C George and Job(DP)
题目 Source http://codeforces.com/contest/467/problem/C Description The new ITone 6 has been released ...
- HDU 2586 (LCA模板题)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2586 题目大意:在一个无向树上,求一条链权和. 解题思路: 0 | 1 / \ 2 3 ...
- 洛谷 P1074 靶形数独 Label:search 不会
题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他 们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教, Z 博士拿出了他最近发明的 ...
- 【BZOJ】3239: Discrete Logging
http://www.lydsy.com/JudgeOnline/problem.php?id=3239 题意:原题很清楚了= = #include <bits/stdc++.h> usi ...