ホームページ  >  記事  >  バックエンド開発  >  PHP ページ番号フォームのページング関数が静的アドレスと Ajax ページングをサポート_PHP チュートリアル

PHP ページ番号フォームのページング関数が静的アドレスと Ajax ページングをサポート_PHP チュートリアル

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

これまでページネーションに遭遇するたびに、いつも自分で書かなければならず、非常に面倒に思えたので、一般原則に基づいてページネーションのメソッドを作成し、ここに記録します。

現在、このページングは​​静的アドレス ページングと、リンク アドレスがない場合の Ajax ページングをサポートしています (ただし、js は自分で記述する必要があります):

サポートされている静的アドレスは次のとおりです: www.example.com/xxx-xxx-p1 -xxxx-xx.html

他の形式の静的化は、独自の状況に応じて書き直す必要があります

Ajax ページングをサポートする場合、$link パラメーターは空ですが、pid と optype が提供され、pid はページを取得するために使用されます。ページの存在には、number と optype が使用されます。 複数のページングがある場合、現在のトリガー アクションがどのページング ロジックに属しているかを区別します

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

/*************************************************** * ******
*
* ページ番号を取得します
*
********************************* ******* ************************
*
* @params string $link リンク アドレス (ページをめくるのに ajax を使用できます)リンクは空です)
*
* @ params int $intPage 現在のページ番号
*
* @params int $intTotal 合計ページ番号
*
* @params int $intSize 表示されるページ数
*
* @params string $type リンクタイプ (複数ページ ページはページめくり領域を区別するために使用されます)
*
***************************** ************* ********************
*
* @return array
*/
プライベート関数 formatPage($link="",$intPage,$intTotal,$intSize=3,$type="")
{
$strPage = '
';
if($intTotal > 0)
{
if($intPage > 1)
$strPage .= $link!=''?'<<上一页':'<<上一页';
else
$strPage .= '<<上一页';
//窗口宽度は总页数より大きい
if( ($intSize+2) >= $intTotal )
{
for($i=1;$i<=$intTotal;$i++)
{
$strClass = $i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?''.$i.'':''.$i.'';
}
}
else
{
if($intPage < ceil($intSize/2))
{
for($i=1;$i<=$intSize;$i++)
{
$strClass = $ i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?''.$i.'':''.$i.'';
}
$strPage .= $link!=''?''.$intTotal.'':''.$intTotal.'';
}
elseif(($intTotal-$intPage) < ceil($intSize/2))
{
$strPage .= $link!=''?'1':'1';
for($i = ($intTotal + 1 - $intSize);$i++;$i<=$intTotal)
{
$strClass = $i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?''.$i.'':''.$i.'';
}
}
else
{
$intOffset = Floor($intSize/2);
$strPage .= $link!=''?'1 ':'1';
if( ($intPage - $intOffset) > 2)
{
$strPage .= '';
}
for($i=(($intPage - $intOffset)<=1?2:($intPage - $intOffset));$i<=(($intPage + $intOffset)>=$intTotal? ($intTotal-1):($intPage + $intOffset));$i++)
{
$strClass = $i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?''.$i.'':''.$i.'';
}
if( ($intPage - $intOffset) < ($intTotal - 1))
{
$strPage .= '';
}
$strPage .= $link!=''?' '.$intTotal.'':' '.$intTotal.'';
}
}
if($intPage < $intTotal)
{
$strPage .= $link!=''?'次の页>>':'下一页>>';
}
else
{
$strPage .= '次のページ>>';
}
}
$strPage .= "< ;/ div>";
return $strPage;
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/746870.html技術記事これまでページネーションに遭遇するたびに、いつも自分で書かなければならず、非常に面倒に思えたので、一般原則に基づいてページネーションのメソッドを作成し、ここに記録します。 現在、このページは静的アドレス共有をサポートしています...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。