2012-03-23 5 views
2

私はページ区切り部分の末尾にあり、一番下のページ番号のリンクをいくつか許可するように要求されました。これらのページが存在する場合、現在のページの前後に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

ページネーションのクラスや例がたくさんありますが、ソースコードを実際に見ているだけです。 –

答えて

9

プラス/マイナス2、最初に表示するように最小値と最大ページ数を計算します。

$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

関連する問題