網(wǎng)頁的分頁下標(biāo)生成代碼(PHP后端方法)
更新時(shí)間:2016年02月03日 22:31:39 作者:IT985博客
網(wǎng)頁的分頁選擇效果直接影響用戶的使用體驗(yàn)。類似功能的方法有很多,我在這里寫的方法主要是的優(yōu)勢在于前后端分離,可以自己定義長度和分頁的行數(shù)
測試圖例:
效果圖:
實(shí)現(xiàn)代碼:
/** * * @param $page 頁碼(1至正無窮) * @param $num 數(shù)據(jù)中多上行為一頁 * @param $rows 數(shù)據(jù)的總行數(shù) * @param $length 下標(biāo)的最大長度 * @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; } //對頁碼進(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ì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí),需要的朋友們下面跟著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-08-08詳解Laravel視圖間共享數(shù)據(jù)與視圖Composer
視圖的基本使用很簡單,可查看視圖文檔了解詳情,今天這里我們演示兩個(gè)使用示例:在視圖間共享數(shù)據(jù)和視圖Composer。下面一起來看看。2016-08-08thinkphp5引入公共部分header、footer的方法詳解
小編做的項(xiàng)目需要在項(xiàng)目中需要用到引入公共導(dǎo)航、頭部、底部、右邊部分等等,接下來通過本文給大家介紹thinkphp5引入公共部分header、footer的方法 ,需要的朋友可以參考下2018-09-09