2012-03-23 120 views
2

我在分頁部分的尾端,它被要求只允許底部的幾個頁碼鏈接。如果這些頁面存在,可以在當前頁面之前和之後說出兩個。PHP分頁,只顯示幾頁鏈接

if($pagination->total_pages() > 1) { 
if($pagination->has_previous_page()) { 
    echo "<a href=\"results.php?page="; 
    echo $pagination->previous_page(); 
    echo "\">&laquo; Previous</a>"; 
} 

for($i = 1; $i <= $pagination->total_pages(); $i++) { 
    if($i == $page) { 
     echo "<span class=\"current\">{$i}</span>"; 
    } else { 
     echo "<a href=\"doc_list.php?page={$i}\">{$i}</a>"; 
    } 
} 

if($pagination->has_next_page()) { 
    echo "<a href=\"results.php?page="; 
    echo $pagination->next_page(); 
    echo "\">Next &raquo;</a>"; 
} 
} 

我將非常感謝任何指導,因爲我不知道如何解決這個問題。

+0

有很多分頁類和例子,你只需要看看源代碼。 – 2012-03-23 21:07:35

回答

9

要顯示當前頁面加/減二,先計算出最小和最大頁碼顯示:

$min = max($page - 2, 1); // there are no pages < 1 
$max = min($page + 2, $pagination->total_pages()); // and no pages > total_pages 

,然後顯示鏈接:

for($i = $min; $i <= $max; ++$i) { 
    if($i == $page) { 
     echo "<span class=\"current\">{$i}</span>"; 
    } else { 
     echo "<a href=\"doc_list.php?page={$i}\">{$i}</a>"; 
    } 
} 

您可能還需要涉及到顯示第一頁/上一頁/下一頁/最後一頁的鏈接與上述內容,但我們需要先詳細說明在破解之前我們要做的結果。

+0

有一些電腦問題,但現在啓動並運行。完美的作品,非常感謝。還是PHP的新手,所以試圖說服我的頭如何運作,但我會得到它。 – Rob 2012-03-26 15:19:51