ページング処理はご存じでしょうか??ブログなどで「次のページへ」みたいなボタンありますよね。あれです。
ページング処理のメリットはページを分割することでサイトを見やすくしたり、1ページあたりの情報量を少なくできます。
通常フレームワークなどでやることが多いそうですが、今回は僕初が心者ということで簡単なコードでのページング処理を書きました!以下のような人が対象です。
- ページングの仕組みを理解したい人
- ページングを練習したい人
僕自身も未熟なのでご指摘あればお願いします(、..)、
実際に作ってみた
以下、ソースコードを示してから解説したいと思います。
CSSを書いていないので見た目はご容赦ください!
また、ページ移動の38、41行目のaタグのリンクは皆さんのファイルに合わせてください!
ページングの仕組み
ページング処理は複雑に見えて僕も最初は 訳が分かりませんでしたが、意外と単純でした。
最初に決めること
まず、決めるべきことがあります!
- 1ページあたりの最大表示数(2行目)
- コンテンツの総数(9行目)
- ページの最大数(10行目)
コンテンツはここでは簡略化していますが、実際はブログの記事などです。
2行目で1ページに表示するコンテンツを5個までとしています。
9行目で配列に含まれるコンテンツの数を取得します。
10行目でコンテンツの総数からページの最大数を求めます。これは40行目の「次のページへ」のリンクで使います。
次に決めること
そしたら、これらの値を使って次のことを行います!
- 現在のページを決める(12~15行目)
- スタートを決める(18行目)
- 表示するページを取得(19行目)
- 表示する(31~34行目)
12~15行目の詳しいことはHTTPの本とかに載ってると思いますが、書き方だけ覚えてしまえば使うことができます。
38行目に index.php?page=<?php echo ($page-1); ?> とあります。ファイル名に?page=表示したいページ、と続けることでそのページを取得することができます。
index.php?page= 1なら $_GET[‘page’] で1を受け取ります。
つまり、最初は1ページ目に設定し、ボタンを押すと、次のページ、前のページへ移動できるようにプログラムを書いています。
これができたら、19行目で$startから数えて、5個のコンテンツを取得し、表示します。
流れとしてはこんな感じです。意外と簡単でしょうか??
まとめ
実際に作るとなると、もう少し機能をつけるためコードが多いと思います。しかし、仕組みは上記のような感じです。
これを発展させていけば他のページングにも応用できそうです。
コピペしていただいても大丈夫ですが、エスケープとかしていないので勉強の範囲で使っていただくことをお勧めします!
PHPの勉強にお困りの方はこちらもどうぞ♪
コメント