###前提・実現したいこと
PHPで1ページに20個のアイテムを表示するページング機能を作成しています。
自分が今いるページのプラスマイナス2ページ(自分を含めて合計5ページ)表示するところまで出来ました。
今はこんな感じです↓(4ページ目にいるとして)
前へ 2 3 4 5 6 次へ
しかし、今の書き方だと自分が1ページ目にいるときに、現在のページ+2ページしか表示されません
1 2 3 次へ
2ページ目にいるときもこのようになります
前へ 1 2 3 4 次へ
1ページ目のときに
1 2 3 4 5 次へ
最終ページのときに
前へ 16 17 18 19 20
という風に、表示されるページ数を常に5個に固定するにはどのように改善すれば良いでしょうか?
###該当のソースコード
PHP
1function pagination($page, $pages) { 2 // 表示する件数の範囲 3 $range = 2; 4 // ページ数が1以外のときに表示 5 if ($pages != 1) { 6 echo '<ul id="pagination">'; 7 // 現在のページ数が1より大きければ「前へ」を追加 8 if ($page > 1) echo '<li class="prev"><a href="?page=',$page-1,'">前へ</a></li>'; 9 10 for ($i = 1; $i <= $pages; $i++) { 11 // 現在のページ+-2のときに表示 12 if ($i >= $page-$range && $i <= $page+$range) { 13 // 現在のページならactiveクラスを付与 14 if ($i == $page) { 15 echo '<li class="active">',$i,'</li>'; 16 } else { 17 echo '<li><a href="?page=',$i,'">',$i,'</a></li>'; 18 } 19 } 20 } 21 22 // 現在のページ数が最終ページより小さければ「次へ」を追加 23 if ($page < $pages) echo '<li class="next"><a href="?page=',$page+1,'">次へ</a></li>'; 24 echo '</ul>'; 25 } 26}
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/08 01:07