php頁(yè)碼形式分頁(yè)函數(shù)支持靜態(tài)化地址及ajax分頁(yè)
更新時(shí)間:2014年03月28日 11:34:45 作者:
這篇文章主要介紹了php頁(yè)碼形式分頁(yè)函數(shù),此分頁(yè)支持靜態(tài)化地址分頁(yè)和無(wú)鏈接地址時(shí)的ajax分頁(yè),需要的朋友可以參考下
之前每次遇到分頁(yè),總是得自己寫(xiě),覺(jué)得挺繁瑣的,所以本著通用的原則,寫(xiě)了一個(gè)分頁(yè)的方法,特此記錄。
目前此分頁(yè)支持靜態(tài)化地址分頁(yè)和無(wú)鏈接地址時(shí)的ajax分頁(yè)(但是js得自己寫(xiě)):
支持的靜態(tài)地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html
其他形式靜態(tài)化需根據(jù)自己情況進(jìn)行改寫(xiě)
支持ajax方式分頁(yè)時(shí),$link參數(shù)為空,但提供了pid和optype,其中pid用于獲取該頁(yè)碼頁(yè)數(shù),optype用于一個(gè)頁(yè)面存在多個(gè)分頁(yè)時(shí)區(qū)分當(dāng)前觸發(fā)動(dòng)作屬于哪個(gè)分頁(yè)邏輯
/**********************************************************
*
* 獲取頁(yè)碼
*
**********************************************************
*
* @params string $link 鏈接地址(鏈接為空時(shí)可以用ajax翻頁(yè))
*
* @params int $intPage 當(dāng)前頁(yè)數(shù)
*
* @params int $intTotal 總頁(yè)數(shù)
*
* @params int $intSize 要顯示的頁(yè)數(shù)個(gè)數(shù)
*
* @params string $type 鏈接種類(lèi)(多個(gè)翻頁(yè)用于區(qū)分翻頁(yè)區(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).'"><<上一頁(yè)</a>':'<a optype="'.$type.'" pid="showpage_'.($intPage-1).'" href="javascript:void(0)"><<上一頁(yè)</a>';
else
$strPage .= '<a href="javascript:void(0)"><<上一頁(yè)</a>';
//窗口寬度大于等于總頁(yè)數(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).'">下一頁(yè)>></a>':'<a optype="'.$type.'" pid="showpage_'.($intPage+1).'" href="javascript:void(0)">下一頁(yè)>></a>';
}
else
{
$strPage .= '<a href="javascript:void(0)">下一頁(yè)>></a>';
}
}
$strPage .= "</div>";
return $strPage;
}
目前此分頁(yè)支持靜態(tài)化地址分頁(yè)和無(wú)鏈接地址時(shí)的ajax分頁(yè)(但是js得自己寫(xiě)):
支持的靜態(tài)地址如下:www.example.com/xxx-xxx-p1-xxxx-xx.html
其他形式靜態(tài)化需根據(jù)自己情況進(jìn)行改寫(xiě)
支持ajax方式分頁(yè)時(shí),$link參數(shù)為空,但提供了pid和optype,其中pid用于獲取該頁(yè)碼頁(yè)數(shù),optype用于一個(gè)頁(yè)面存在多個(gè)分頁(yè)時(shí)區(qū)分當(dāng)前觸發(fā)動(dòng)作屬于哪個(gè)分頁(yè)邏輯
復(fù)制代碼 代碼如下:
/**********************************************************
*
* 獲取頁(yè)碼
*
**********************************************************
*
* @params string $link 鏈接地址(鏈接為空時(shí)可以用ajax翻頁(yè))
*
* @params int $intPage 當(dāng)前頁(yè)數(shù)
*
* @params int $intTotal 總頁(yè)數(shù)
*
* @params int $intSize 要顯示的頁(yè)數(shù)個(gè)數(shù)
*
* @params string $type 鏈接種類(lèi)(多個(gè)翻頁(yè)用于區(qū)分翻頁(yè)區(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).'"><<上一頁(yè)</a>':'<a optype="'.$type.'" pid="showpage_'.($intPage-1).'" href="javascript:void(0)"><<上一頁(yè)</a>';
else
$strPage .= '<a href="javascript:void(0)"><<上一頁(yè)</a>';
//窗口寬度大于等于總頁(yè)數(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).'">下一頁(yè)>></a>':'<a optype="'.$type.'" pid="showpage_'.($intPage+1).'" href="javascript:void(0)">下一頁(yè)>></a>';
}
else
{
$strPage .= '<a href="javascript:void(0)">下一頁(yè)>></a>';
}
}
$strPage .= "</div>";
return $strPage;
}
您可能感興趣的文章:
- php+mysql分頁(yè)代碼詳解
- mysql+php分頁(yè)類(lèi)(已測(cè))
- php5 mysql分頁(yè)實(shí)例代碼
- php mysql數(shù)據(jù)庫(kù)操作分頁(yè)類(lèi)
- PHP使用Mysqli類(lèi)庫(kù)實(shí)現(xiàn)完美分頁(yè)效果的方法
- PHP+Mysql+Ajax實(shí)現(xiàn)淘寶客服或阿里旺旺聊天功能(前臺(tái)頁(yè)面)
- php分頁(yè)查詢(xún)mysql結(jié)果的base64處理方法示例
- PHP頁(yè)面輸出搜索后跳轉(zhuǎn)下一頁(yè)的處理方法
- PHP翻頁(yè)跳轉(zhuǎn)功能實(shí)現(xiàn)方法
- php顯示頁(yè)碼分頁(yè)類(lèi)的封裝
- PHP+MySQL實(shí)現(xiàn)輸入頁(yè)碼跳轉(zhuǎn)到指定頁(yè)面功能示例
相關(guān)文章
php一維二維數(shù)組鍵排序方法實(shí)例總結(jié)
這篇文章主要介紹了php一維二維數(shù)組鍵排序方法,以實(shí)例形式總結(jié)了針對(duì)一維數(shù)組的冒泡排序與使用array_multisort()對(duì)二位數(shù)組按照指定鍵值排序等方法,具有不錯(cuò)的參考借鑒價(jià)值,需要的朋友可以參考下2014-11-11
淺談ThinkPHP中initialize和construct的區(qū)別
下面小編就為大家?guī)?lái)一篇淺談ThinkPHP中initialize和construct的區(qū)別。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04
php中抓取網(wǎng)頁(yè)內(nèi)容的實(shí)例詳解
這篇文章主要介紹了php中抓取網(wǎng)頁(yè)內(nèi)容的實(shí)例詳解的相關(guān)資料,這里提供兩種實(shí)現(xiàn)方法,希望能幫助到大家,需要的朋友可以參考下2017-08-08
PHP實(shí)現(xiàn)的curl批量請(qǐng)求操作示例
這篇文章主要介紹了PHP實(shí)現(xiàn)的curl批量請(qǐng)求操作,結(jié)合實(shí)例形式分析了php使用curl進(jìn)行批量請(qǐng)求處理的具體批量創(chuàng)建curl句柄、批量執(zhí)行句柄、防卡死等相關(guān)操作技巧,需要的朋友可以參考下2018-06-06

