[ PHP ] – 分頁 程式 顯示固定頁數

以往小編在做 分頁 都是使用 下拉選單 讓使用者選擇要切換到第幾頁,但有些版型不適合放下拉選單,所以這次寫另一種分頁 它是依目前所在頁面 往前 往後顯示固定的頁數。

<?php
$p=isset($_GET['p'])?$_GET['p']:1;//取得目前所在分頁 頁次 若無參數 則停在 第一頁
echo 'Total:'.$total=68;echo '<br/>';//資料總筆數 -----#可變動
echo 'Pageofone:'.$pageofone=2;echo '<br/>';//幾筆分成一頁 -----#可變動
echo 'Pages:'.$pages=ceil($total/$pageofone);echo '<br/>';//計算出總共有幾頁
echo 'Showpage:'.$showpage=9;echo '<br/>';//每次要顯示幾筆分頁 只能設為 單數 1 3 5 7 9 若設為 雙數一樣會加1 ex 設為 2 最終顯示還是3 -----#可變動
echo $cut=floor($showpage/2);//以目前所在頁次 為中心 往左右各顯示幾個頁次 以無條件捨去
echo '<hr/>';
for ($i=1;$i<=$pages; $i++) {//原頁次顯示 對照用
	echo '<li '.($p==$i?'style="color:green;"':'').'><a href="?p='.$i.'">'.$i.'</a></li>';
}
echo '<hr/>';
$left=1;//預設從第一筆開始
$right=$pages;//預設到最後一筆結束
if($pages>$showpage){//若總頁數大於 每次要顯示幾筆分頁 才要執行以下片段
	if($p<=$cut ){$left=$p-1;}else{$left=$cut;}//若所在頁面小於分割數
	if($p>$pages-$cut ){
		$right=($p==$pages?0:1);
		$left+=$left-$right;
	}else{$right=$cut+($cut-$left);}//若所在頁面小於 總分頁數-分割數
	$left=$p-$left;//以目前頁次為中心點 往左要顯示多少頁面
	$right=$p+$right;//以目前頁次為中心點 往右要顯示多少頁面
}
for ($i=$left;$i<=$right; $i++) {
	echo '<li '.($p==$i?'style="color:green;"':'').'><a href="?p='.$i.'">'.$i.'</a></li>';
}
?>

顯示結果
Total:68
Pageofone:2
Pages:34
Showpage:9
4


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34


6 7 8 9 10 11 12 13 14

!去下營經續永站本助幫能就下一點輕輕,話的您到助幫有章文的我果如 如果我的文章有幫助到您的話,輕輕點一下就能幫助本站永續經營下去!

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。