ホームページ  >  記事  >  バックエンド開発  >  絶妙で美しいPHPページネーションクラス code_PHPチュートリアル

絶妙で美しいPHPページネーションクラス code_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:12:27877ブラウズ

これは、シンプルで便利な、完全に機能するページング クラスです。必要に応じて CSS スタイル ファイルを変更して、ページングの色を制御できます。必要なのは、PHP ページング クラスだけです。ページングの場所に埋め込むだけです。使い方は次のとおりです:

1. head に pager.css をインクルードします

コードをコピーします コードは次のとおりです:



2. ページング ポイントでクラスをインスタンス化します。

コードをコピーします コードは次のとおりです:

include "pager.class.php";
$CurrentPage=isset($_GET['page'])?$_GET[ 'ページ'] :1;
//die($CurrentPage);
$myPage=new pager(1300,intval($CurrentPage));
//echo $ pageStr; $ myPage=new pager(90,intval($CurrentPage));
echo $pageStr;



3. mysql データベースの読み取りとページング計算ファイルは自分で記述する必要があります。例:

$info=mysql_query("select * from member order by id desc limit $offset,$info_num"); このようにして、mysql データベースと現在のページ番号を転送できます。

全部で以下の3つのファイルが含まれています:(1)index.php:ページングクラスを呼び出してページングを表示します(2)pager.class.php:phpページングクラス(3)pager.css:CSS風美化ファイル

(1)index.php:

コードをコピーします

コードは次のとおりです:

<---ページングのデモ-----
< ;/head>
< $myPage=new pager(1300,intval($CurrentPage)); Str= $myPage->GetPagerContent()
//echo $pageStr ;
$myPage=new pager(90, intval ($CurrentPage));
echo $pageStr;
;




(2) pager.class.php:



コードをコピー

コードは次のとおりです:

/*
* PHP分页类
* @package Page
* @Created 2013-03-27
* @Modify 2013-03-27
* @link http://www.60ie.ネット
* 例:
$myPage=new Pager(1300,intval($CurrentPage));  
$pageStr= $myPage->GetPagerContent();  
echo $pageStr;  
*/
class Pager {
private $pageSize = 10;   
プライベート $pageIndex;   
プライベート $totalNum;   

プライベート $totalPagesCount;   

プライベート $pageUrl;   
プライベート静的 $_instance;   

public function __construct($p_totalNum, $p_pageIndex, $p_pageSize = 10,$p_initNum=3,$p_initMaxNum=5) {
if (! isset ( $p_totalNum ) || !isset($p_pageIndex)) {
死ぬ ( 「ポケベル初期エラー」 );   
}

$this->totalNum = $p_totalNum;   
$this->pageIndex = $p_pageIndex;   
$this->pageSize = $p_pageSize;   
$this->initNum=$p_initNum;   
$this->initMaxNum=$p_initMaxNum;   
$this->totalPagesCount= ceil($p_totalNum / $p_pageSize);   
$this->pageUrl=$this->_getPageUrl();   

$this->_initPagerLegal();   
}


/**
* ページ部分を除いた現在の URL 文字列を取得
*
* @return String URL 文字列
*/
private function _getPageUrl() {
$CurrentUrl = $_SERVER["REQUEST_URI"];   
$arrUrl = parse_url($CurrentUrl);   
$urlQuery = $arrUrl["クエリ"];   

if($urlQuery){
$urlQuery = ereg_replace("(^|&)page=" . $this->pageIndex, "", $urlQuery);   
$CurrentUrl = str_replace($arrUrl["query"], $urlQuery, $CurrentUrl);   

if($urlQuery){
$CurrentUrl.="&page";   
}
else $CurrentUrl.="page";   

} else {
$CurrentUrl.="?page";   
}

return $CurrentUrl;   

}
/*
*設定页面パラメータ合法性
*@return void
*/
private function _initPagerLegal()
{
if((!is_numeric($this- >pageIndex)) || $this-> ;pageIndex<1)
{
$this->pageIndex=1;   
}elseif($this->pageIndex > $this->totalPagesCount)

}
//$this->pageUrl }={$i}
//{$this->CurrentUrl}={$ This&gt; totalpages} public function getPageContent(){$ str = "&lt; div class =" Pagination "&gt;ページ "."n"."n"; =「ホーム」>ホーム "."n"; )「'クラス =' ヒント' タイトル = '前のページ' & gt; 最後のページ & lt; /a & gt;". "n". "n"; ページング ロジック



for($i=1;$i<= $this->totalPagesCount;$i++) nt =" class='現在'";} }else //10页以上
{ if($this->pageIndex<3) //当前页小以下3
{
for($i=1;$i<=3;$i++)
{
if($ i==$this->pageIndex)
{ $currnt=" class='current'";}
else { $currnt="";    }
$str .="$i"."n" ;   
}

$str.="……"."n";   

for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)// 功能1
{
$str .="$i"."n" ;   

}
}elseif($this->pageIndex<=5) // 5 >=当前页 >= 3
{
for($i=1;$i<=($this->pageIndex +1);$i++)
{
if($i==$this->pageIndex)
{ $currnt="current '";}
else
{ $currnt="";    }
$str .="$i"."n" ;   

}
$str.="……"."n";

for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)//功能1
{
$str .="$i"."n" ;

}

}elseif(5<$ this->pageIndex && $this->pageIndex<=$this->totalPagesCount-5 ) //当前页大より5、同時に总页数-5より小さい

{

for($i=1;$ i<=3;$i++)
{
$str .="$i"."n" ;
}
$str.="……";
for($i=$this ->pageIndex-1 ;$i ;pageIndex+1 && $i<=$this->totalPagesCount-5+1;$i++)
{
if($i==$this->pageIndex)
{ $currnt=" class='current' ";}
else
{ $currnt="";    }
$str .="$i"."n" ;   
}
$str.="……";

for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)
{
$str .="$i"."n" ;

}
}else
{

for($i=1;$i< ; = 3; $ i ++)
{
$ str。= "&lt; a href = '{$ this-&gt; pageurl} = {$ i}'&gt; $ i&lt;/a&gt;"。 "n"; }
$str.="……& lt;/span & gt; "." n ";

for ($ i = $ This-GT; TotalPageScount-5; $ i & lt; = $ This- & GT; TotalPageScount; $ i ++) / / 関数 1 F ( $i==$this->pageIndex) $currnt=""; } this->pageUrl}={$i} ' {$currnt}>$i"。 "n" ;ページページングロジックが終了します

$str .="n"."次のページ最後のページ"."n";

.="n"." a href='{$this->pageUrl}=".($this->pageIndex+1)."' class='tips' title='次のページ'>次のページ ;最後のページ< ;/a> "."n" ;


/**
* インスタンスを取得します
* @return
*/
// static public function getInstance() {
// if (is_null ( self::$_instance )) {
// self ::$_instance = 新しいページャー ();
// }
// return self:: $_instance
// }


}
;



(3) pager.css:




コードをコピーします

コードは次のとおりです:

body,html{padding:0px;マージン:0px;色:#333333; font-family:"宋体"、Arial、Lucida、Verdana、Helvetica、サンセリフ;フォントサイズ:12px; line-height:150%;}

h1,h2,h3,h4,h5,h6,ul,li,dl,dt,dd,form,img,p,label{margin:0;パディング:0;境界線:なし; list-style-type:none;}

/**フロントページのページネーションのスタイル**/

.Pagination {margin:10px 0 0;padding:5px 0;text-align:rightright;高さ:20ピクセル;行の高さ:20px; font-family:Arial, Helvetica, sans-serif,"宋体";}

.Pagination a {margin-left:2px;padding:2px 7px 2px;}

.Pagination .dot{ border:medium none; padding:4px 8px}

.Pagination a:link, .Pagination a:visited {border:1px Solid #dedede;color:#696969;text-decoration:none;}

.Pagination a:hover, .Pagination a: active, .Pagination a.current:link, .Pagination a.current:visited {border:1px Solid #dedede;color:#fff;背景色:#ff6600;背景画像:なし; border:#ff6600 ソリッド 1px;}

.Pagination .selectBar{ border:#dedede ソリッド 1px;フォントサイズ:12px;幅:95ピクセル;高さ:21ピクセル;行の高さ:21px;マージン左:10px; display:inline}

.ページネーション a.tips{_padding:4px 7px 1px;}

转ダウンロード:http://60ie.net/article/8/365.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/326694.html技術記事これは一項宀单、方便、機能性全の分別タイプであり、必要に応じて CSS 形式の文書を変更して分別制御を実現し、php 分別クラスを利用して、自分の多くを削除することができます...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。