php頁碼形式分頁函數(shù)支持靜態(tài)化地址及ajax分頁
更新時(shí)間:2014年03月28日 11:34:45 作者:
這篇文章主要介紹了php頁碼形式分頁函數(shù),此分頁支持靜態(tài)化地址分頁和無鏈接地址時(shí)的ajax分頁,需要的朋友可以參考下
之前每次遇到分頁,總是得自己寫,覺得挺繁瑣的,所以本著通用的原則,寫了一個(gè)分頁的方法,特此記錄。
目前此分頁支持靜態(tài)化地址分頁和無鏈接地址時(shí)的ajax分頁(但是js得自己寫):
支持的靜態(tài)地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html
其他形式靜態(tài)化需根據(jù)自己情況進(jìn)行改寫
支持ajax方式分頁時(shí),$link參數(shù)為空,但提供了pid和optype,其中pid用于獲取該頁碼頁數(shù),optype用于一個(gè)頁面存在多個(gè)分頁時(shí)區(qū)分當(dāng)前觸發(fā)動(dòng)作屬于哪個(gè)分頁邏輯
/**********************************************************
*
* 獲取頁碼
*
**********************************************************
*
* @params string $link 鏈接地址(鏈接為空時(shí)可以用ajax翻頁)
*
* @params int $intPage 當(dāng)前頁數(shù)
*
* @params int $intTotal 總頁數(shù)
*
* @params int $intSize 要顯示的頁數(shù)個(gè)數(shù)
*
* @params string $type 鏈接種類(多個(gè)翻頁用于區(qū)分翻頁區(qū)域)
*
**********************************************************
*
* @return array
*/
private function formatPage($link="",$intPage,$intTotal,$intSize=3,$type="")
{
$strPage = '<div class="g_serpage clearfix">';
if($intTotal > 0)
{
if($intPage > 1)
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".($intPage-1),$link).'"><<上一頁</a>':'<a optype="'.$type.'" pid="showpage_'.($intPage-1).'" href="javascript:void(0)"><<上一頁</a>';
else
$strPage .= '<a href="javascript:void(0)"><<上一頁</a>';
//窗口寬度大于等于總頁數(shù)
if( ($intSize+2) >= $intTotal )
{
for($i=1;$i<=$intTotal;$i++)
{
$strClass = $i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>';
}
}
else
{
if($intPage < ceil($intSize/2))
{
for($i=1;$i<=$intSize;$i++)
{
$strClass = $i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>';
}
$strPage .= $link!=''?'<a class="gpage_nobor" >…</a><a href="'.preg_replace("/-p(\d+)/","p".$intTotal,$link).'" >'.$intTotal.'</a>':'<a class="gpage_nobor" >…</a><a optype="'.$type.'" pid="showpage_'.$intTotal.'" href="javascript:void(0)" >'.$intTotal.'</a>';
}
elseif(($intTotal-$intPage) < ceil($intSize/2))
{
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p1",$link).'">1</a><a class="gpage_nobor" >…</a>':'<a optype="'.$type.'" pid="showpage_1" href="javascript:void(0)">1</a><a class="gpage_nobor" >…</a>';
for($i = ($intTotal + 1 - $intSize);$i++;$i<=$intTotal)
{
$strClass = $i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>';
}
}
else
{
$intOffset = floor($intSize/2);
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p1",$link).'">1</a>':'<a optype="'.$type.'" pid="showpage_1" href="javascript:void(0)">1</a>';
if( ($intPage - $intOffset) > 2)
{
$strPage .= '<a class="gpage_nobor" >…</a>';
}
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!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>';
}
if( ($intPage - $intOffset) < ($intTotal - 1))
{
$strPage .= '<a class="gpage_nobor" >…</a>';
}
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$intTotal,$link).'">'.$intTotal.'</a>':'<a optype="'.$type.'" pid="showpage_'.$intTotal.'" href="javascript:void(0)">'.$intTotal.'</a>';
}
}
if($intPage < $intTotal)
{
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".($intPage+1),$link).'">下一頁>></a>':'<a optype="'.$type.'" pid="showpage_'.($intPage+1).'" href="javascript:void(0)">下一頁>></a>';
}
else
{
$strPage .= '<a href="javascript:void(0)">下一頁>></a>';
}
}
$strPage .= "</div>";
return $strPage;
}
目前此分頁支持靜態(tài)化地址分頁和無鏈接地址時(shí)的ajax分頁(但是js得自己寫):
支持的靜態(tài)地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html
其他形式靜態(tài)化需根據(jù)自己情況進(jìn)行改寫
支持ajax方式分頁時(shí),$link參數(shù)為空,但提供了pid和optype,其中pid用于獲取該頁碼頁數(shù),optype用于一個(gè)頁面存在多個(gè)分頁時(shí)區(qū)分當(dāng)前觸發(fā)動(dòng)作屬于哪個(gè)分頁邏輯
復(fù)制代碼 代碼如下:
/**********************************************************
*
* 獲取頁碼
*
**********************************************************
*
* @params string $link 鏈接地址(鏈接為空時(shí)可以用ajax翻頁)
*
* @params int $intPage 當(dāng)前頁數(shù)
*
* @params int $intTotal 總頁數(shù)
*
* @params int $intSize 要顯示的頁數(shù)個(gè)數(shù)
*
* @params string $type 鏈接種類(多個(gè)翻頁用于區(qū)分翻頁區(qū)域)
*
**********************************************************
*
* @return array
*/
private function formatPage($link="",$intPage,$intTotal,$intSize=3,$type="")
{
$strPage = '<div class="g_serpage clearfix">';
if($intTotal > 0)
{
if($intPage > 1)
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".($intPage-1),$link).'"><<上一頁</a>':'<a optype="'.$type.'" pid="showpage_'.($intPage-1).'" href="javascript:void(0)"><<上一頁</a>';
else
$strPage .= '<a href="javascript:void(0)"><<上一頁</a>';
//窗口寬度大于等于總頁數(shù)
if( ($intSize+2) >= $intTotal )
{
for($i=1;$i<=$intTotal;$i++)
{
$strClass = $i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>';
}
}
else
{
if($intPage < ceil($intSize/2))
{
for($i=1;$i<=$intSize;$i++)
{
$strClass = $i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>';
}
$strPage .= $link!=''?'<a class="gpage_nobor" >…</a><a href="'.preg_replace("/-p(\d+)/","p".$intTotal,$link).'" >'.$intTotal.'</a>':'<a class="gpage_nobor" >…</a><a optype="'.$type.'" pid="showpage_'.$intTotal.'" href="javascript:void(0)" >'.$intTotal.'</a>';
}
elseif(($intTotal-$intPage) < ceil($intSize/2))
{
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p1",$link).'">1</a><a class="gpage_nobor" >…</a>':'<a optype="'.$type.'" pid="showpage_1" href="javascript:void(0)">1</a><a class="gpage_nobor" >…</a>';
for($i = ($intTotal + 1 - $intSize);$i++;$i<=$intTotal)
{
$strClass = $i == $intPage ? 'class="g_serpagcur"' : "";
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>';
}
}
else
{
$intOffset = floor($intSize/2);
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p1",$link).'">1</a>':'<a optype="'.$type.'" pid="showpage_1" href="javascript:void(0)">1</a>';
if( ($intPage - $intOffset) > 2)
{
$strPage .= '<a class="gpage_nobor" >…</a>';
}
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!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$i,$link).'" '.$strClass.'>'.$i.'</a>':'<a optype="'.$type.'" pid="showpage_'.$i.'" href="javascript:void(0)" '.$strClass.'>'.$i.'</a>';
}
if( ($intPage - $intOffset) < ($intTotal - 1))
{
$strPage .= '<a class="gpage_nobor" >…</a>';
}
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".$intTotal,$link).'">'.$intTotal.'</a>':'<a optype="'.$type.'" pid="showpage_'.$intTotal.'" href="javascript:void(0)">'.$intTotal.'</a>';
}
}
if($intPage < $intTotal)
{
$strPage .= $link!=''?'<a href="'.preg_replace("/-p(\d+)/","p".($intPage+1),$link).'">下一頁>></a>':'<a optype="'.$type.'" pid="showpage_'.($intPage+1).'" href="javascript:void(0)">下一頁>></a>';
}
else
{
$strPage .= '<a href="javascript:void(0)">下一頁>></a>';
}
}
$strPage .= "</div>";
return $strPage;
}
您可能感興趣的文章:
- php+mysql分頁代碼詳解
- mysql+php分頁類(已測(cè))
- php5 mysql分頁實(shí)例代碼
- php mysql數(shù)據(jù)庫操作分頁類
- PHP使用Mysqli類庫實(shí)現(xiàn)完美分頁效果的方法
- PHP+Mysql+Ajax實(shí)現(xiàn)淘寶客服或阿里旺旺聊天功能(前臺(tái)頁面)
- php分頁查詢mysql結(jié)果的base64處理方法示例
- PHP頁面輸出搜索后跳轉(zhuǎn)下一頁的處理方法
- PHP翻頁跳轉(zhuǎn)功能實(shí)現(xiàn)方法
- php顯示頁碼分頁類的封裝
- PHP+MySQL實(shí)現(xiàn)輸入頁碼跳轉(zhuǎn)到指定頁面功能示例
相關(guān)文章
PHP生成Flash動(dòng)畫的實(shí)現(xiàn)代碼
使用 Flash 動(dòng)畫的第一種方法是使用 Ming 庫動(dòng)態(tài)生成它們。Ming 庫是一個(gè) PHP 庫,在wamp我看到已經(jīng)帶了這個(gè)庫,只是沒有啟用。2010-03-03用php的ob_start來生成靜態(tài)頁面的方法分析
php下利用ob_start來生成靜態(tài)頁面的方法,需要生成靜態(tài)的朋友可以參考下。2011-03-03php中配置文件操作 如config.php文件的讀取修改等操作
對(duì)形如config.php文件的讀取,修改等操作的代碼,需要的朋友可以參考下2012-07-07php實(shí)現(xiàn)的ping端口函數(shù)實(shí)例
這篇文章主要介紹了php實(shí)現(xiàn)的ping端口函數(shù),以實(shí)例形式較為詳細(xì)的分析了PHP使用socket編程的技巧,需要的朋友可以參考下2014-11-11解析PHP的Yii框架中cookie和session功能的相關(guān)操作
這篇文章主要介紹了PHP的Yii框架中cookie和session功能的相關(guān)操作,需要的朋友可以參考下2016-03-03