thinkphp 分页的 实现 和样式 分享

1 根据think\page.class.php 文件 可以知道分页类的使用需要很多次的调用 我们可以自己再写一个方法 方便多次使用 放在Common/function.php中

function getpage(&$m,$where,$pagesize=2){
$m1=clone $m;//浅复制一个模型
$count = $m->where($where)->count();//连惯操作后会对join等操作进行重置
$m=$m1;//为保持在为定的连惯操作,浅复制一个模型
$p=new \Think\Page($count,$pagesize);
$p->lastSuffix=false;
$p->setConfig('header','<li class="rows">共<b>%TOTAL_ROW%</b>条记录&nbsp;&nbsp;每页<b>%LIST_ROW%</b>条&nbsp;&nbsp;第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>');
$p->setConfig('prev','上一页');
$p->setConfig('next','下一页');
$p->setConfig('last','末页');
$p->setConfig('first','首页');
$p->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
$p->parameter=I('get.');

$m->limit($p->firstRow,$p->listRows);

return $p;
}

2php 的调用
/        查询所有 实例化对象
$goodsModel= D('Goods');
//条件
$where="status=1";
//调用分页方法
$p=getpage($goodsModel,$where,2);
//查询数据
$rows=$goodsModel->field(true)->where($where)->order('goods_id desc')->select();

$page=$p->show();
//赋值参数
$this->assign('rows',$rows);
//赋值分页
$this->assign('page',$page);


3页面赋值显示
<div class="page b-page">
  {$page}
</div>




//4 分页样式 我们可以新建一个page.css 放入 public下面 分享一个比较好看的分页样式
.b-page {
background: #fff;
box-shadow: 0px 1px 2px 0px #E2E2E2;
}
.page {
width: 100%;
padding: 30px 15px;
background: #FFF;
text-align: right;
overflow: hidden;
}
.page .first,
.page .prev,
.page .current,
.page .num,
.page .current,
.page .next,
.page .end {
padding: 8px 16px;
margin: 0px 5px;
display: inline-block;
color: #008CBA;
border: 1px solid #F2F2F2;
border-radius: 5px;
}
.page .first:hover,
.page .prev:hover,
.page .current:hover,
.page .num:hover,
.page .current:hover,
.page .next:hover,
.page .end:hover {
text-decoration: none;
background: #F8F5F5;
}
.page .current {
background-color: #008CBA;
color: #FFF;
border-radius: 5px;
border: 1px solid #008CBA;
}
.page .current:hover {
text-decoration: none;
background: #008CBA;
}
.page .not-allowed {
cursor: not-allowed;
}




 

posted @ 2017-02-11 22:53  鲜花满月楼  阅读(1801)  评论(0编辑  收藏  举报