程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> thinkphp分頁實現效果

thinkphp分頁實現效果

編輯:PHP綜合

對於thinkphp分頁的實現效果,一共分為兩種一種是一種調用公共函數中的函數方法,而另一種是模型中書寫分頁的方法,下面就給需要的朋友來整理一下。

一、分頁方法

/**
 * TODO 基礎分頁的相同代碼封裝,使前台的代碼更少
 * @param $m 模型,引用傳遞
 * @param $where 查詢條件
 * @param int $pagesize 每頁查詢條數
 * @return \Think\Page
 */
function getpage(&$m,$where,$pagesize=10){
 $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>條記錄  每頁<b>%LIST_ROW%</b>條  第<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;
}


getpage方法可以放在TP框架的 Application/Common/Common/function.php,這個文檔可以專門放置一些通用的方法,在哪裡都可以調用(如:Controller文件,View文件等)。

二、調用分頁方法

$m=M('products');
$p=getpage($m,$where,10);
$list=$m->field(true)->where($where)->order('id desc')->select();
$this->list=$list;
$this->page=$p->show();

再是View代碼

<div class="pagination">
  {$page}
</div>

三、最後就是分頁的樣式了,這個有些亂,因後台框架網上下載的,樣式還沒來的及整理,這個樣式也可以自己實現,簡單的。

.pagination ul {
 display: inline-block;
 margin-bottom: 0;
 margin-left: 0;
 -webkit-border-radius: 3px;
 -moz-border-radius: 3px;
 border-radius: 3px;
 -webkit-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
 -moz-box-shadow: 0 1px 2px rgba(0,0,0,0.05);
 box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.pagination ul li {
 display: inline;
}

.pagination ul li.rows {
 line-height: 30px;
 padding-left: 5px;
}
.pagination ul li.rows b{color: #f00}

.pagination ul li a, .pagination ul li span {
 float: left;
 padding: 4px 12px;
 line-height: 20px;
 text-decoration: none;
 background-color: #fff;
 background: url('../images/bottom_bg.png') 0px 0px;
 border: 1px solid #d3dbde;
 /*border-left-width: 0;*/
 margin-left: 2px;
 color: #08c;
}
.pagination ul li a:hover{
 color: red;
 background: #0088cc;
}
.pagination ul li.first-child a, .pagination ul li.first-child span {
 border-left-width: 1px;
 -webkit-border-bottom-left-radius: 3px;
 border-bottom-left-radius: 3px;
 -webkit-border-top-left-radius: 3px;
 border-top-left-radius: 3px;
 -moz-border-radius-bottomleft: 3px;
 -moz-border-radius-topleft: 3px;
}
.pagination ul .disabled span, .pagination ul .disabled a, .pagination ul .disabled a:hover {
color: #999;
cursor: default;
background-color: transparent;
}
.pagination ul .active a, .pagination ul .active span {
color: #999;
cursor: default;
}
.pagination ul li a:hover, .pagination ul .active a, .pagination ul .active span {
background-color: #f0c040;
}
.pagination ul li.last-child a, .pagination ul li.last-child span {
 -webkit-border-top-right-radius: 3px;
 border-top-right-radius: 3px;
 -webkit-border-bottom-right-radius: 3px;
 border-bottom-right-radius: 3px;
 -moz-border-radius-topright: 3px;
 -moz-border-radius-bottomright: 3px;
}

.pagination ul li.current a{color: #f00 ;font-weight: bold; background: #ddd}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved