我目前使用下面的php分頁腳本。分頁顯示每頁有六個結果,包含上一個/下一個鏈接。我想知道是否有人可能知道我可以添加什麼,以便分頁還顯示前兩頁和最後兩頁的鏈接?就像這個例子頁面分頁:http://www.winelog.net/wines/OregonPHP分頁顯示前兩頁和最後兩頁
$data=file("data.txt");
$pages=0;
foreach($data as $temp){
$x=explode("|",$temp);
if($x[0] > 0){
$pages=$pages+1;
}
}
if($_GET['p']){
$page=$_GET['p'];
}
if($_GET['i']){
$index=$_GET['i'];
}
if($index == "p"){
$page=$page-1;
}
if($index == "n"){
$page=$page+1;
}
if($page < 1){
$page=1;
}
if($page > $pages){
$page=$pages;
}
$line=$data[$page-1];
$fields=explode("|",$line);
顯示的導航:
$show=6;
echo "<li><a href='?i=p&p=$page'>« PREV</li></a>";
if($page-($show/2) > 1){
$temp=$page-$show;
echo "<li><a href='?p=$temp'>...</li></a>";
}
if($page-($show/2) >= 1 && $page+($show/2) <= $pages){
$start=$page-($show/2);
$stop=$page+($show/2);
}
if($page-($show/2) < 1){
$start=1;
$stop=$show;
}
if($page+($show/2) > $pages){
$start=$pages-$show;
$stop=$pages;
}
for($i=$start; $i<=$stop; $i++){
if($page==$i){
echo "<li class='active'>$i</li></a>";
}
else{
echo "<li><a href='?p=$i'>$i</li></a>";
}
}
if($page+($show/2) < $pages){
$temp=$page+$show;
echo "<li><a href='?p=$temp'>...</li></a>";
}
echo "<li><a href='?i=n&p=$page'>NEXT »</li></a>";
我或許會去jQuery的方式。它簡單而乾淨。 http://plugins.jquery.com/project/pagination –
@Nikhil:爲什麼??!你正在創建對Javascript的依賴,插件會比較慢,他可能會把所有的數據發送到頁面 - 這很慢,很可能。停止向客戶推送不必推到那裏的東西! – 2011-11-01 14:58:40