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

質問編集履歴

6

追加します。

2016/08/17 08:42

投稿

uverworld101nm
uverworld101nm

スコア172

title CHANGED
File without changes
body CHANGED
@@ -216,4 +216,9 @@
216
216
  ?>
217
217
  ```
218
218
 
219
- ![screen](18e531ca05e23da8d634cb098edfdd39.png)
219
+ ![screen](18e531ca05e23da8d634cb098edfdd39.png)
220
+
221
+ また、$currentが機能していない証拠です。
222
+ このページは4ページめですが、1ページめが黒くなっています。(途中で切れていて見れません、ごめんなさい。)
223
+
224
+ ![screen2](b773df70bd8d7d60d64308aa101d8498.png)

5

スクリーンショットを提示します。

2016/08/17 08:42

投稿

uverworld101nm
uverworld101nm

スコア172

title CHANGED
File without changes
body CHANGED
@@ -214,4 +214,6 @@
214
214
  }
215
215
  }
216
216
  ?>
217
- ```
217
+ ```
218
+
219
+ ![screen](18e531ca05e23da8d634cb098edfdd39.png)

4

質問を編集します。

2016/08/17 08:34

投稿

uverworld101nm
uverworld101nm

スコア172

title CHANGED
File without changes
body CHANGED
@@ -97,6 +97,8 @@
97
97
 
98
98
  paging($limit, $page);
99
99
  ```
100
+
101
+ これが元のコードです。
100
102
  ```PHP
101
103
  <html>
102
104
  <head>
@@ -128,7 +130,8 @@
128
130
  </body>
129
131
  </html>
130
132
  <?php
131
- if (isset($_GET['keyword']) || isset($_GET['budget'])) {
133
+ if (isset($_GET['keyword']) || isset($_GET['budget'])) {
134
+ $page = empty ( $_GET ["page"] ) ? 1 : $_GET ["page"];
132
135
  $key='私のキー';
133
136
  $count='50';
134
137
  $large_area='〇〇';

3

元のコードを全て提示します。

2016/08/17 04:40

投稿

uverworld101nm
uverworld101nm

スコア172

title CHANGED
File without changes
body CHANGED
@@ -96,4 +96,119 @@
96
96
  $page = empty($_GET["page"])? 1:$_GET["page"];//ページ番号
97
97
 
98
98
  paging($limit, $page);
99
+ ```
100
+ ```PHP
101
+ <html>
102
+ <head>
103
+ <title>API_SAMPLE</title>
104
+ </head>
105
+ <body>
106
+ <form action="" method="GET">
107
+ <input type="text" name="keyword" >
108
+ <input type="submit">
109
+ </form>
110
+ </body>
111
+ </html>
112
+ <html>
113
+ <head>
114
+ <title>API_SAMPLE</title>
115
+ </head>
116
+ <body>
117
+ <form method="GET">
118
+ <select name="budget">
119
+ <option value="B001">〜2000円</option>
120
+ <option value="B002">2001円〜3000円</option>
121
+ <option value="B003">3001円〜4000円</option>
122
+ <option value="B008">4001円〜5000円</option>
123
+ <option value="B004">5001円〜7000円</option>
124
+ <option value="B005">7000円〜10000円</option>
125
+ <option value="B006">10001円〜</option>
126
+ </select> <input type="submit" name="search" value="検索" onFocus="this.select()">
127
+ </form>
128
+ </body>
129
+ </html>
130
+ <?php
131
+ if (isset($_GET['keyword']) || isset($_GET['budget'])) {
132
+ $key='私のキー';
133
+ $count='50';
134
+ $large_area='〇〇';
135
+ $start =1+($page-1)*10;
136
+ $keyword=$_GET ["keyword"];
137
+ $budget=$_GET ["budget"];
138
+ $format='xml';
139
+ $url='http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key='.$key.'&count='.$count.'&large_area='.$large_area.'&start='.$start.'&keyword='.$keyword.'&budget='.$budget.'&format='.$format;
140
+ $xml=simplexml_load_file($url);
141
+ var_dump($url);
142
+ $total_count=$xml->results_available;
143
+ function paging($limit, $page, $disp=5){
144
+ //$dispはページ番号の表示数
145
+ $next = $page+1;
146
+ $prev = $page-1;
147
+ //ページ番号リンク用
148
+ $start = ($page-floor($disp/2) > 0) ? ($page-floor($disp/2)) : 1;//始点
149
+ $end = ($start > 1) ? ($page+floor($disp/2)) : $disp;//終点
150
+ $start = ($limit < $end)? $start-($end-$limit):$start;//始点再計算
151
+
152
+ if($page != 1 ) {
153
+ print '<a href="?page='.$prev.'&budget='.$_GET["budget"].'&keyword='.$_GET ["keyword"]. '">&laquo; 前へ</a>';
154
+ }
155
+
156
+ //最初のページへのリンク
157
+ if($start >= floor($disp/2)){
158
+ print '<a href="?page=1&budget='.$_GET["budget"].'&keyword='.$_GET ["keyword"].'">1</a>';
159
+ if($start > floor($disp/2)) print "..."; //ドットの表示
160
+ }
161
+
162
+
163
+ for($i=$start; $i <= $end ; $i++){//ページリンク表示ループ
164
+
165
+ $class = ($page == $i) ? ' class="current"':"";//現在地を表すCSSクラス
166
+
167
+ if($i <= $limit && $i > 0 )//1以上最大ページ数以下の場合
168
+ print '<a href="?page='.$i.'&budget='.$_GET["budget"].'&keyword='.$_GET ["keyword"].'"'.$class.'>'.$i.'</a>';//ページ番号リンク表示
169
+
170
+ }
171
+
172
+ //最後のページへのリンク
173
+ if($limit > $end){
174
+ if($limit-1 > $end ) print "..."; //ドットの表示
175
+ print '<a href="?page='.$limit.'&budget='.$_GET["budget"].'&keyword='.$_GET ["keyword"]. '">'.$limit.'</a>';
176
+ }
177
+
178
+ if($page < $limit){
179
+ print '<a href="?page='.$next.'&budget='.$_GET["budget"].'&keyword='.$_GET ["keyword"]. '">次へ &raquo;</a>';
180
+ }
181
+
182
+ /*確認用
183
+ print "<p>current:".$page."<br>";
184
+ print "next:".$next."<br>";
185
+ print "prev:".$prev."<br>";
186
+ print "limit:".$limit."<br>";
187
+ print "start:".$start."<br>";
188
+ print "end:".$end."</p>";*/
189
+
190
+ }
191
+ $limit =ceil($total_count/$count); //最大ページ数
192
+ $page = empty($_GET["page"])? 1:$_GET["page"];//ページ番号
193
+
194
+ paging($limit, $page,10);
195
+
196
+ if(!$xml->shop){
197
+ echo '見つかりませんでした';
198
+ } else {
199
+ foreach($xml->shop as $r){
200
+ echo '<table>' ;
201
+ echo '<tr>';
202
+ echo '<td>';
203
+ echo $r->name;
204
+ echo '</td>';
205
+ echo '<td>';
206
+ echo $r->access;
207
+ echo '</td>';
208
+ echo '</tr>';
209
+ echo '</table>';
210
+ }
211
+ }
212
+ }
213
+ ?>
99
214
  ```

2

編集しました。

2016/08/17 04:37

投稿

uverworld101nm
uverworld101nm

スコア172

title CHANGED
File without changes
body CHANGED
@@ -1,6 +1,10 @@
1
1
  再質問をさせていただきます。
2
2
  ※わかりづらかったので説明します。このコードだと、次へボタンをクリックしても3ページ目に行けないんです。また、1,2,3,4,5,6,7,8,9,10,...110と表示され、...の中は絶対表示されないんです。
3
3
  どうすれば、この問題を直せますか?
4
+ ```php
5
+ $page = empty ( $_GET ["page"] ) ? 1 : $_GET ["page"];
6
+ ```
7
+ これを入れると、ページ遷移ができなくなります。
4
8
  このコードでできることは、10ページまでと最後のページの遷移ができること、「次へ」ボタンで2ページ目へ行けることです。
5
9
  つまり、このコードでもページ遷移が可能だということです。
6
10
  しかし、反対にできないことは10ページ以降のページが表示されないこと、「次へ」ボタンは2ページまでしか表示されないことです。

1

2016/08/16 13:52

投稿

uverworld101nm
uverworld101nm

スコア172

title CHANGED
File without changes
body CHANGED
@@ -1,4 +1,6 @@
1
1
  再質問をさせていただきます。
2
+ ※わかりづらかったので説明します。このコードだと、次へボタンをクリックしても3ページ目に行けないんです。また、1,2,3,4,5,6,7,8,9,10,...110と表示され、...の中は絶対表示されないんです。
3
+ どうすれば、この問題を直せますか?
2
4
  このコードでできることは、10ページまでと最後のページの遷移ができること、「次へ」ボタンで2ページ目へ行けることです。
3
5
  つまり、このコードでもページ遷移が可能だということです。
4
6
  しかし、反対にできないことは10ページ以降のページが表示されないこと、「次へ」ボタンは2ページまでしか表示されないことです。