網(wǎng)頁的分頁下標(biāo)生成代碼(PHP后端方法)
更新時(shí)間:2016年02月03日 22:31:39 作者:IT985博客
網(wǎng)頁的分頁選擇效果直接影響用戶的使用體驗(yàn)。類似功能的方法有很多,我在這里寫的方法主要是的優(yōu)勢(shì)在于前后端分離,可以自己定義長(zhǎng)度和分頁的行數(shù)
測(cè)試圖例:

效果圖:

實(shí)現(xiàn)代碼:
/**
*
* @param $page 頁碼(1至正無窮)
* @param $num 數(shù)據(jù)中多上行為一頁
* @param $rows 數(shù)據(jù)的總行數(shù)
* @param $length 下標(biāo)的最大長(zhǎng)度
* @return array
*/
public function PageDate($page, $num , $rows , $length){
//初始化數(shù)據(jù)
$MaxPage = 0; //最大頁碼
$MinPage = 0; //最小頁碼
$ServerPage = 0; //下拉框中顯示的頁碼
$PageData = array(); //全部的頁碼集合(用戶下拉框選擇)
$PageShowData = array(); //用于顯示下標(biāo)的頁碼集合
$page = intval($page);
if($rows == 0){
return $data = array(
'page' => $page,
'MaxPage' => $MaxPage,
'MinPage' => $MinPage,
'ServerPage' => $ServerPage,
'PageData' => $PageData,
'PageShowData' => $PageShowData
);
}
//得到最大分頁和最小分頁
$MaxPage = intval($rows / $num);
$double = $rows % $num;
if($double > 0.000000001)
{
$MaxPage += 1;
}
$MinPage = 1;
$ServerPage = 1;
//得到頁碼的全部項(xiàng)目
for($i = 1; $i <= $MaxPage; $i++ ){
$PageData[$i] = $i;
}
//對(duì)頁碼進(jìn)行正確性改正
if($page < $MinPage){
$page = 1;
}
if($page > $MaxPage){
$page = 1;
}
/*生成顯示的頁碼標(biāo)簽*/
//生成左側(cè)的代碼快
if($page == $MinPage){
$PageShowData[1] = $page;
}
if($page > $MinPage){
$PageShowData[1] = $MinPage;
// $PageShowData[2] = $page - 1; // <<
$PageShowData[2] = '<<'; // <<
if($page -2 > $MinPage ){
$PageShowData[3] = $page - 2;
$PageShowData[4] = $page - 1;
}elseif($page -2 == $MinPage){
$PageShowData[3] = $page - 1;
}
//確定選中的頁碼代碼快
$PageShowData[count($PageShowData) + 1] = $page;
}
$COUNT = count($PageShowData) + 1;
//生成右側(cè)的代碼塊
if($page == $MaxPage){
return $data = array(
'page' => $page,
'MaxPage' => $MaxPage,
'MinPage' => $MinPage,
'ServerPage' => $ServerPage,
'PageData' => $PageData,
'PageShowData' => $PageShowData
);
}
if($page < $MaxPage) {
if($MaxPage - $page >= 2){
$j = 1;
for($i = $COUNT; $i <= $length ; $i++){
$PageShowData[$i] = $page + $j;
$j ++;
if($PageShowData[$i] == $MaxPage -1){
break;
}
}
}
$COUNT = count($PageShowData) + 1;
// $PageShowData[$COUNT] = $page + 1; //>>
$PageShowData[$COUNT] = '>>';
$PageShowData[$COUNT + 1] = $MaxPage;
//得到選中的參數(shù)
$ServerPage = $PageShowData[$COUNT-1] + 1;
if($ServerPage > $MaxPage){
$ServerPage = 1;
}
return $data = array(
'page' => $page,
'MaxPage' => $MaxPage,
'MinPage' => $MinPage,
'ServerPage' => $ServerPage,
'PageData' => $PageData,
'PageShowData' => $PageShowData
);
}
}
本文出自 IT985博客
相關(guān)文章
Laravel框架中VerifyCsrfToken報(bào)錯(cuò)問題的解決
這篇文章主要給大家介紹了關(guān)于Laravel框架中VerifyCsrfToken報(bào)錯(cuò)問題的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí),需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08
詳解Laravel視圖間共享數(shù)據(jù)與視圖Composer
視圖的基本使用很簡(jiǎn)單,可查看視圖文檔了解詳情,今天這里我們演示兩個(gè)使用示例:在視圖間共享數(shù)據(jù)和視圖Composer。下面一起來看看。2016-08-08
thinkphp5引入公共部分header、footer的方法詳解
小編做的項(xiàng)目需要在項(xiàng)目中需要用到引入公共導(dǎo)航、頭部、底部、右邊部分等等,接下來通過本文給大家介紹thinkphp5引入公共部分header、footer的方法 ,需要的朋友可以參考下2018-09-09
ThinkPHP表單自動(dòng)驗(yàn)證實(shí)例
這篇文章主要介紹了ThinkPHP表單自動(dòng)驗(yàn)證實(shí)例,是ThinkPHP三大自動(dòng)中非常常用的一個(gè)技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-10-10

