ホームページ  >  記事  >  バックエンド開発  >  ThinkPHP ページングの実装_PHP チュートリアル

ThinkPHP ページングの実装_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:17:12735ブラウズ

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 %記事  番号%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();
    次にコードを表示します
    {$page}
    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}

    www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/894183.html技術記事 ThinkPHP 分页实现 TP3.2框架手册,有一データ分页,不过每次都要書太多的代码,还有中文设置等有麻烦,做程序开発行者,必要整理下...
    声明:
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。