ThinkPHP ページングの実装
TP3.2 フレームワークのマニュアルにはデータページングが記載されていますが、毎回コードを書く必要がありすぎたり、中国語の設定などいくつか面倒な点があり、プログラム開発者としては以下の点を整理する必要があります。
1.ページング方法
コードをコピー
/**
*TODO 基本的なページングの同じコードのカプセル化により、フロントエンドのコードが少なくなります
* @param $m モデル、参照によって渡されます
* @param $where クエリ条件
* @param int $pagesize ページごとのクエリ数
* @return ThinkPage
*/
関数 getpage(&$m,$where,$pagesize=10){
$m1=clone $m;//モデルの浅いコピー
$count = $m->where($where)->count();//連続操作後、結合などの操作はリセットされます
$m=$m1;//一定の継続的な動作を維持するために、モデルを浅くコピーします
$p=新しい ThinkPage($count,$pagesize);
$p->lastSuffix=false;
$p->setConfig('header','
合計%TOTAL_ROW%レコード数 ページあたり%LIST_ROW % b>記事 番号%NOW_PAGE%ページ/合計%TOTAL_PAGE%ページ');
$p->setConfig('prev','前のページ');
$p->setConfig('次','次のページ');
$p->setConfig('last','last page');
$p->setConfig('first','Homepage');
$p->setConfig('テーマ','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
$p->parameter=I('get.');
$m->limit($p->firstRow,$p->listRows);
$p を返します;
}
コードをコピー
getpage メソッドは、TP フレームワークの Application/Common/Common/function.php に配置できます。このドキュメントでは、いくつかの一般的なメソッドを具体的に配置し、どこでも呼び出すことができます (コントローラー ファイル、ビュー ファイルなど)。
2. ページングメソッドを呼び出します
$m=M('製品');
$p=getpage($m,$where,10);
$list=$m->field(true)->where($where)->order('id desc')->select();
$this->list=$list;
$this->page=$p->show();
次にコードを表示します
3 番目に、最後のステップはページング スタイルです。これは少し面倒です。バックグラウンド フレームワークはインターネットからダウンロードしたものなので、まだ整理されていません。このスタイルは自分で実装することもできます。
コードをコピー
.ページネーション ul {
表示: インラインブロック;
マージン-ボトム: 0;
マージン左: 0;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
境界半径: 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);
ボックスシャドウ: 0 1px 2px rgba(0,0,0,0.05);
}
.ページネーション ul li {
表示: インライン;
}
.pagination ul li.rows {
行の高さ: 30px;
padding-left: 5px;
}
.ページネーション ul li.rows b{color: #f00}
.pagination ul li a、.pagination ul li span {
フロート: 左;
パディング: 4px 12px;
行の高さ: 20px;
テキスト装飾: なし;
背景色: #fff;
背景: url('../images/bottom_bg.png') 0px 0px;
境界線: 1 ピクセルの実線 #d3dbde;
/*border-left-width: 0;*/
左マージン: 2px;
色:#08c;
}
.ページネーション ul li a:hover{
色: 赤;
背景: #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 {
色: #999;
カーソル: デフォルト;
背景色: 透明;
}
.pagination ul .active a、 .pagination ul .active スパン {
色: #999;
カーソル: デフォルト;
}
.pagination ul li a:hover、.pagination ul .active a、.pagination ul .active spa {
背景色: #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: 太字;背景: #ddd}
http://www.bkjia.com/PHPjc/894183.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/894183.html技術記事 ThinkPHP 分页实现 TP3.2框架手册,有一データ分页,不过每次都要書太多的代码,还有中文设置等有麻烦,做程序开発行者,必要整理下...