thinkphp3.2.3分页代码
2016-04-08 08:37
561 查看
<?php
/*
* 后台公共分页类
*/
namespace Admin_dj\Common;
class Page{
private $Page_size; //每页显示的条目数
private $Total_Size; //总条目数
private $page; //当前页
private $Total_Pages = 20; //总页数
private $Page_Seek = array(); //是否搜索 搜索条件 keyword => '门店' city = 1
private $PageLink;//分页链接
private $m;//操作model
private $field = array();//查询字段,为空则全部查询,1维数组
private $Where = array();//查询条件 要查询的表字段条件
private $seek;//是否搜索
public function init($m,$Page_size = 15,$page = 1,$Page_Seek =array(),$field,$Where = array(),$PageLink) {
//总条数不存在则按照条件查询统计
if(!$Total_Size && $Where){
$Total_Size = $m->where($Where)->count();
}else{
$Total_Size = $m->count();
}
//是否搜索
if($Page_Seek){
$seek = 1;
}
//每页显示条数
$Page_size= intval($Page_size)?intval($Page_size):5;
if(is_array($_GET['page'])){
$v = $_GET['page'][0];
unset($_GET['page']);
$_GET['page'] = $v;
}
//当前页不存在则去获取get内的page
if (!$Page) {
$page = 1;
} else {
$page = (empty($page) ? $_GET ["page"] : $page);
}
//查询字段
if(is_array($field)){
foreach($field as $k => $v){
$s_array .=$v.',';
}
}else{
if($field != "*"){
$s_array = $field.',';
}
}
//分页链接是否存在,不存在则调用当前连接
$PageLink = (empty($PageLink) ? $_SERVER ["PHP_SELF"] : $PageLink);
//总分页数
$Total_Pages = ceil($Total_Size / $Page_size);
//总数少于当前显示条目数时不显示分页
if($Total_Size > $Page_size){
return $this->list_info($m,$Where,$s_array,$Page_size,$List_Page,$PageLink,$Page_Seek,$Total_Size,$seek,$page,$Total_Pages);
}else{
return $this->list_info($m,$Where);
}
}
/*
* 列表数据
*/
public function list_info($m,$Where,$s_array,$Page_size,$List_Page,$PageLink,$Page_Seek,$Total_Size,$seek,$page,$Total_Pages){
//查询起始位
if (!$_GET['page']) {
$page = $page - 1;
} else {
$page = $_GET['page'];
}
$start_num = $page * $Page_size;
//查询数据
//$User->where()->field()->limit(10)->select();
$list_info = $m->where($Where)->field(substr($s_array,0,strlen($s_array)-1))->limit($start_num,$Page_size)->select();
if($Page_size) $list_info['page_info'] = $this->tpl($Total_Size,$page,$Total_Pages,$seek,$Page_Seek,$PageLink);
// $list_info['page_size'] = $Page_size;
// $list_info['Total_Pages'] = $Total_Pages;
// $list_info['Total_Size'] = $Total_Size;
return $list_info;
}
/*
* 创建分页模板
*/
public function tpl($Total_Size,$page,$Total_Pages,$seek,$Page_Seek,$PageLink){
$Page_tpl .= "总 ".$Total_Size." 条记录 共 ".$Total_Pages." 页 ";
//首页数据
$Page_tpl .= $this->home($PageLink, $seek, $Page_Seek);
//上一页数据
$Page_tpl .= $this->uppage($PageLink,$seek,$Page_Seek,$page);
//左右页数据
//$Page_tpl .= $this->qh_page($PageLink, $seek, $Page_Seek, $page, $Total_Pages);
//下一页数据
$Page_tpl .= $this->pageback($PageLink, $seek, $Page_Seek, $page,$Total_Pages);
//尾页数据
$Page_tpl .= $this->last($PageLink, $seek, $Page_Seek, $page,$Total_Pages);
//跳转
$Page_tpl .= $this->input($PageLink, $seek, $Page_Seek, $page,$Total_Pages);
//返回数据
return $Page_tpl;
}
//创建首页数据
public function home($PageLink,$seek,$Page_Seek){
if($seek){
$html = " <a href='".$PageLink."?page=0&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$html .= substr($info,0,strlen($info)-1)."'>首页</a> ";
}else{
$html = "<a href='".$PageLink."?page=1"."'>首页</a> ";
}
return $html;
}
//上一页数据
public function uppage($PageLink,$seek,$Page_Seek,$page,$Total_Pages){
if(!$_GET['page'])$page = $page-1;
$page = $page-1;
if($page < 0) $page=0;
if($seek){
$html = " <a href='".$PageLink."?page=".$page."&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$html .= substr($info,0,strlen($info)-1)."'>上一页</a> ";
}else{
$html = "<a href='".$PageLink."?page=".$page."'>上一页</a> ";
}
return $html;
}
//下一页数据
public function pageback($PageLink,$seek,$Page_Seek,$page,$Total_Pages){
if ($_GET['page']) {
$page = $_GET['page'] + 1;
} else {
$page = $page + 1;
}
if($page >= $Total_Pages) $page=$Total_Pages-1;
if($seek){
$html = " <a href='".$PageLink."?page=".$page."&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$html .= substr($info,0,strlen($info)-1)."'>下一页</a> ";
}else{
$html = "<a href='".$PageLink."?page=".$page."'>下一页</a> ";
}
return $html;
}
//尾页
public function last($PageLink, $seek, $Page_Seek, $page,$Total_Pages){
$page=$Total_Pages-1;
if($seek){
$html = " <a href='".$PageLink."?page=".$page."&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$html .= substr($info,0,strlen($info)-1)."'>尾页</a> ";
}else{
$html = "<a href='".$PageLink."?page=".$page."'>尾页</a> ";
}
return $html;
}
//左右页数据 待完成
// public function qh_page($PageLink, $seek, $Page_Seek, $page,$Total_Pages){
// $html = '';
// if($seek){
// foreach($Page_Seek['search'] as $k => $v){
// $info .=$k.'='.$v."&";
// }
// $html .="<a href='".$PageLink."?page=".($page-1)."&".substr($info,0,strlen($info)-1).">".($page-1)."</a>";
// }else{
// for($i=0;$i<$num;$i++){
// $html .="<a href='".$PageLink."?page=".($page-$i).">".($page-$i)."</a>";
// }
// $html .= "<a href='".$PageLink."?page=".$page.">".$page."</a>";
// for($j=0;$j<$num;$j++){
// $html .="<a href='".$PageLink."?page=".($page+$i).">".($page+$i)."</a>";
// }
// }
// return $html;
// }
public function input($PageLink, $seek, $Page_Seek, $page,$Total_Pages){
$html = '';
#<form action="{$self}" method="post">
if($seek){
$url = $PageLink."?page=".$page."&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$url .= substr($info,0,strlen($info)-1);
}else{
$url = $PageLink."?page=".$page;
}
$html .="<form action='".$url."' method='get'> <input type='text' name='page' value=".$page." style='width:15px;'/><input type='submit' value='跳转'/></form>";
return $html;
}
public function test(){
echo "测试";
}
}
左右页并没有完善,有兴趣的小伙伴可以完善完善。
/*
* 后台公共分页类
*/
namespace Admin_dj\Common;
class Page{
private $Page_size; //每页显示的条目数
private $Total_Size; //总条目数
private $page; //当前页
private $Total_Pages = 20; //总页数
private $Page_Seek = array(); //是否搜索 搜索条件 keyword => '门店' city = 1
private $PageLink;//分页链接
private $m;//操作model
private $field = array();//查询字段,为空则全部查询,1维数组
private $Where = array();//查询条件 要查询的表字段条件
private $seek;//是否搜索
public function init($m,$Page_size = 15,$page = 1,$Page_Seek =array(),$field,$Where = array(),$PageLink) {
//总条数不存在则按照条件查询统计
if(!$Total_Size && $Where){
$Total_Size = $m->where($Where)->count();
}else{
$Total_Size = $m->count();
}
//是否搜索
if($Page_Seek){
$seek = 1;
}
//每页显示条数
$Page_size= intval($Page_size)?intval($Page_size):5;
if(is_array($_GET['page'])){
$v = $_GET['page'][0];
unset($_GET['page']);
$_GET['page'] = $v;
}
//当前页不存在则去获取get内的page
if (!$Page) {
$page = 1;
} else {
$page = (empty($page) ? $_GET ["page"] : $page);
}
//查询字段
if(is_array($field)){
foreach($field as $k => $v){
$s_array .=$v.',';
}
}else{
if($field != "*"){
$s_array = $field.',';
}
}
//分页链接是否存在,不存在则调用当前连接
$PageLink = (empty($PageLink) ? $_SERVER ["PHP_SELF"] : $PageLink);
//总分页数
$Total_Pages = ceil($Total_Size / $Page_size);
//总数少于当前显示条目数时不显示分页
if($Total_Size > $Page_size){
return $this->list_info($m,$Where,$s_array,$Page_size,$List_Page,$PageLink,$Page_Seek,$Total_Size,$seek,$page,$Total_Pages);
}else{
return $this->list_info($m,$Where);
}
}
/*
* 列表数据
*/
public function list_info($m,$Where,$s_array,$Page_size,$List_Page,$PageLink,$Page_Seek,$Total_Size,$seek,$page,$Total_Pages){
//查询起始位
if (!$_GET['page']) {
$page = $page - 1;
} else {
$page = $_GET['page'];
}
$start_num = $page * $Page_size;
//查询数据
//$User->where()->field()->limit(10)->select();
$list_info = $m->where($Where)->field(substr($s_array,0,strlen($s_array)-1))->limit($start_num,$Page_size)->select();
if($Page_size) $list_info['page_info'] = $this->tpl($Total_Size,$page,$Total_Pages,$seek,$Page_Seek,$PageLink);
// $list_info['page_size'] = $Page_size;
// $list_info['Total_Pages'] = $Total_Pages;
// $list_info['Total_Size'] = $Total_Size;
return $list_info;
}
/*
* 创建分页模板
*/
public function tpl($Total_Size,$page,$Total_Pages,$seek,$Page_Seek,$PageLink){
$Page_tpl .= "总 ".$Total_Size." 条记录 共 ".$Total_Pages." 页 ";
//首页数据
$Page_tpl .= $this->home($PageLink, $seek, $Page_Seek);
//上一页数据
$Page_tpl .= $this->uppage($PageLink,$seek,$Page_Seek,$page);
//左右页数据
//$Page_tpl .= $this->qh_page($PageLink, $seek, $Page_Seek, $page, $Total_Pages);
//下一页数据
$Page_tpl .= $this->pageback($PageLink, $seek, $Page_Seek, $page,$Total_Pages);
//尾页数据
$Page_tpl .= $this->last($PageLink, $seek, $Page_Seek, $page,$Total_Pages);
//跳转
$Page_tpl .= $this->input($PageLink, $seek, $Page_Seek, $page,$Total_Pages);
//返回数据
return $Page_tpl;
}
//创建首页数据
public function home($PageLink,$seek,$Page_Seek){
if($seek){
$html = " <a href='".$PageLink."?page=0&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$html .= substr($info,0,strlen($info)-1)."'>首页</a> ";
}else{
$html = "<a href='".$PageLink."?page=1"."'>首页</a> ";
}
return $html;
}
//上一页数据
public function uppage($PageLink,$seek,$Page_Seek,$page,$Total_Pages){
if(!$_GET['page'])$page = $page-1;
$page = $page-1;
if($page < 0) $page=0;
if($seek){
$html = " <a href='".$PageLink."?page=".$page."&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$html .= substr($info,0,strlen($info)-1)."'>上一页</a> ";
}else{
$html = "<a href='".$PageLink."?page=".$page."'>上一页</a> ";
}
return $html;
}
//下一页数据
public function pageback($PageLink,$seek,$Page_Seek,$page,$Total_Pages){
if ($_GET['page']) {
$page = $_GET['page'] + 1;
} else {
$page = $page + 1;
}
if($page >= $Total_Pages) $page=$Total_Pages-1;
if($seek){
$html = " <a href='".$PageLink."?page=".$page."&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$html .= substr($info,0,strlen($info)-1)."'>下一页</a> ";
}else{
$html = "<a href='".$PageLink."?page=".$page."'>下一页</a> ";
}
return $html;
}
//尾页
public function last($PageLink, $seek, $Page_Seek, $page,$Total_Pages){
$page=$Total_Pages-1;
if($seek){
$html = " <a href='".$PageLink."?page=".$page."&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$html .= substr($info,0,strlen($info)-1)."'>尾页</a> ";
}else{
$html = "<a href='".$PageLink."?page=".$page."'>尾页</a> ";
}
return $html;
}
//左右页数据 待完成
// public function qh_page($PageLink, $seek, $Page_Seek, $page,$Total_Pages){
// $html = '';
// if($seek){
// foreach($Page_Seek['search'] as $k => $v){
// $info .=$k.'='.$v."&";
// }
// $html .="<a href='".$PageLink."?page=".($page-1)."&".substr($info,0,strlen($info)-1).">".($page-1)."</a>";
// }else{
// for($i=0;$i<$num;$i++){
// $html .="<a href='".$PageLink."?page=".($page-$i).">".($page-$i)."</a>";
// }
// $html .= "<a href='".$PageLink."?page=".$page.">".$page."</a>";
// for($j=0;$j<$num;$j++){
// $html .="<a href='".$PageLink."?page=".($page+$i).">".($page+$i)."</a>";
// }
// }
// return $html;
// }
public function input($PageLink, $seek, $Page_Seek, $page,$Total_Pages){
$html = '';
#<form action="{$self}" method="post">
if($seek){
$url = $PageLink."?page=".$page."&";
foreach($Page_Seek['search'] as $k => $v){
if($v){
$info .='search'.'['.$k.']='.$v."&";
}
}
$url .= substr($info,0,strlen($info)-1);
}else{
$url = $PageLink."?page=".$page;
}
$html .="<form action='".$url."' method='get'> <input type='text' name='page' value=".$page." style='width:15px;'/><input type='submit' value='跳转'/></form>";
return $html;
}
public function test(){
echo "测试";
}
}
左右页并没有完善,有兴趣的小伙伴可以完善完善。
相关文章推荐
- add2array.php
- PHP命名空间namespace使用小结
- php的tips(数组排序函数)
- 初识PHP(二)常用函数
- php实习的tips(结束符的问题)
- php的tips(接口结束符问题)
- laravel学习(一)-laravel安装
- php 字符串函数汇总
- php使用ajax中文乱码问题
- PHP中__autoload和Smarty冲突的简单解决方法
- PHP使用PDO操作数据库的乱码问题解决方法
- php生成带logo二维码方法小结
- PHP实现基于mysqli的Model基类完整实例
- PHP文件上传类实例详解
- PHP实现简单实用的分页类代码
- IIS+PHP环境下文件上传无法访问问题
- PHP新特性
- PHP OCR实战:用Tesseract从图像中读取文字
- Web端PHP代码函数覆盖率测试解决方案
- PHP实现基于文本的莫斯电码生成器