teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

phpコードを追加しました。

2016/06/09 08:47

投稿

442ky119
442ky119

スコア207

title CHANGED
File without changes
body CHANGED
@@ -4,4 +4,61 @@
4
4
 
5
5
  ```php
6
6
  $class = ($page == $i) ? ' class="current"':"";//現在地を表すCSSクラス
7
+ ```
8
+ ```PHP
9
+ function paging($limit, $page, $disp=5){
10
+ //$dispはページ番号の表示数
11
+ $next = $page+1;
12
+ $prev = $page-1;
13
+
14
+ //ページ番号リンク用
15
+ $start = ($page-floor($disp/2) > 0) ? ($page-floor($disp/2)) : 1;//始点
16
+ $end = ($start > 1) ? ($page+floor($disp/2)) : $disp;//終点
17
+ $start = ($limit < $end)? $start-($end-$limit):$start;//始点再計算
18
+
19
+ if($page != 1 ) {
20
+ print '<a href="?my_page='.$prev.'&my_filter='.$area.'">&laquo; 前へ</a>';
21
+ }
22
+
23
+ //最初のページへのリンク
24
+ if($start >= floor($disp/2)){
25
+ print '<a href="?my_page=1&my_filter='.$area.'">1</a>';
26
+ if($start > floor($disp/2)) print "..."; //ドットの表示
27
+ }
28
+
29
+
30
+ for($i=$start; $i <= $end ; $i++){//ページリンク表示ループ
31
+
32
+ $class = ($page == $i) ? ' class="current"':"";//現在地を表すCSSクラス
33
+
34
+ if($i <= $limit && $i > 0 )//1以上最大ページ数以下の場合
35
+ print '<a href="?my_page='.$i.'&my_filter='.$area.'"'.$class.'>'.$i.'</a>';//ページ番号リンク表示
36
+
37
+ }
38
+
39
+ //最後のページへのリンク
40
+ if($limit > $end){
41
+ if($limit-1 > $end ) print "..."; //ドットの表示
42
+ print '<a href="?my_page='.$limit.'&my_filter='.$area.'">'.$limit.'</a>';
43
+ }
44
+
45
+ if($page < $limit){
46
+ print '<a href="?my_page='.$next.'&my_filter='.$area.'">次へ &raquo;</a>';
47
+ }
48
+
49
+ /*確認用
50
+ print "<p>current:".$page."<br>";
51
+ print "next:".$next."<br>";
52
+ print "prev:".$prev."<br>";
53
+ print "limit:".$limit."<br>";
54
+ print "start:".$start."<br>";
55
+ print "end:".$end."</p>";*/
56
+
57
+ }
58
+
59
+ $limit = 120;//最大ページ数
60
+ $page = empty($_GET["my_page"])? 1:$_GET["my_page"];//ページ番号
61
+
62
+ paging($limit, $page);
63
+
7
64
  ```