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

回答編集履歴

2

追加

2016/08/17 03:20

投稿

date
date

スコア1820

answer CHANGED
@@ -1,3 +1,4 @@
1
+ method=GET版
1
2
  ```PHP
2
3
 
3
4
  <html>
@@ -95,4 +96,116 @@
95
96
  ```
96
97
 
97
98
  $key = '';
98
- の部分だけを自分のにすれば動くPOSTかGETかわかんないからGETにした
99
+ の部分だけを自分のにすれば動くPOSTかGETかわかんないからGETにした
100
+
101
+ 追記 2016/08/17 12:11
102
+ method=POST版
103
+ ```
104
+ PHP
105
+ <?php
106
+ session_start();
107
+ ?>
108
+ <html>
109
+ <head>
110
+ <title>API_SAMPLE2</title>
111
+ <style>
112
+ .current {
113
+ font-weight: bold;
114
+ }
115
+ </style>
116
+ </head>
117
+ <body>
118
+ <form method="POST">
119
+ <input type="text" name="keyword">
120
+ <select name="budget">
121
+ <option value="B001">〜2000円</option>
122
+ <option value="B002">2001円〜3000円</option>
123
+ <option value="B003">3001円〜4000円</option>
124
+ </select>
125
+         <input type="submit" name="search" value="検索" onFocus="this.select()">
126
+
127
+
128
+ <?php
129
+ if(isset($_GET["page"]) || isset($_POST["search"])){
130
+ if(isset($_POST["search"])){
131
+ unset($_SESSION["budget"]);
132
+ unset($_SESSION["keyword"]);
133
+ $_SESSION["budget"] =$_POST["budget"];
134
+ $_SESSION["keyword"] =$_POST["keyword"];
135
+ $page=1;
136
+ }else{
137
+ $page=$_GET ["page"];
138
+ }
139
+ $key = '33e69b320cee12b3';
140
+ $count = '50';
141
+ $start = 1 + ($page - 1) * 10;
142
+ $budget = $_SESSION["budget"];
143
+ $keyword = $_SESSION["keyword"];
144
+ $format = 'xml';
145
+ $url = 'http://webservice.recruit.co.jp/hotpepper/gourmet/v1/?key=' . $key . '&count=' . $count . '&start=' . $start . '&keyword=' . $keyword . '&budget=' . $budget . '&format=' . $format;
146
+ $xml = simplexml_load_file ( $url );
147
+ $total_count = $xml->results_available;
148
+ $limit = ceil ( $total_count / $count ); // 最大ページ数
149
+ function paging($limit, $page, $disp = 5) {
150
+ global $budget;
151
+ global $keyword;
152
+ // $dispはページ番号の表示数
153
+ $next = $page + 1;
154
+ $prev = $page - 1;
155
+ // ページ番号リンク用
156
+ $start = ($page - floor ( $disp / 2 ) > 0) ? ($page - floor ( $disp / 2 )) : 1; // 始点
157
+ // print $start;
158
+ $end = ($start > 1) ? ($page + floor ( $disp / 2 )) : $disp; // 終点
159
+ $start = ($limit < $end) ? $start - ($end - $limit) : $start; // 始点再計算
160
+
161
+ if ($page != 1) {
162
+ print '<a name="paging" href="?page=' . $prev .'">&laquo; 前へ</a>';
163
+ }
164
+ // 最初のページへのリンク
165
+ if ($start >= floor ( $disp / 2 )) {
166
+ print '<a name="paging" href="?page=1">1</a>';
167
+ if ($start > floor ( $disp / 2 ))
168
+ print "..."; // ドットの表示
169
+ }
170
+ for($i = $start; $i <= $end; $i ++) { // ページリンク表示ループ
171
+
172
+ $class = ($page == $i) ? ' class="current"' : ""; // 現在地を表すCSSクラス
173
+
174
+ if ($i <= $limit && $i > 0) // 1以上最大ページ数以下の場合
175
+ print '<a name="paging" href="?page=' . $i . '"' . $class . '>' . $i . '</a>'; // ページ番号リンク表示
176
+ }
177
+ // 最後のページへのリンク
178
+ if ($limit > $end) {
179
+ if ($limit - 1 > $end)
180
+ print "..."; // ドットの表示
181
+ print '<a name="paging" href="?page=' . $limit . '">' . $limit . '</a>';
182
+ }
183
+ if ($page < $limit) {
184
+ print '<a name="paging" href="?page=' . $next . '">次へ &raquo;</a>';
185
+ }
186
+ }
187
+ paging ( $limit, $page );
188
+ ?>
189
+ <table border=1>
190
+ <tr>
191
+ <td></td>
192
+ <td>店名</td>
193
+ <td>住所</td>
194
+ </tr>
195
+ <?php
196
+ $l = 1;
197
+ foreach ( $xml->shop as $r ) {?>
198
+ <tr>
199
+ <td><?php echo $l+($page-1)*$count;?></td>
200
+ <td><?php echo $r->name;?></td>
201
+ <td><?php echo $r->address;?></td>
202
+ </tr>
203
+ <?php $l++;?>
204
+ <?}?>
205
+ </table>
206
+ <?php }?>
207
+ </form>
208
+ </body>
209
+ </html>
210
+ ```
211
+ 今度もコピペで動くようになっている

1

修正

2016/08/17 03:20

投稿

date
date

スコア1820

answer CHANGED
@@ -21,7 +21,7 @@
21
21
  <?php
22
22
  if(isset($_GET["page"]) || isset($_GET["search"])){
23
23
  $page = empty ( $_GET ["page"] ) ? 1 : $_GET ["page"]; // ページ番号
24
- $key = '';
24
+ $key = '33e69b320cee12b3';
25
25
  $count = '50';
26
26
  $start = 1 + ($page - 1) * 10;
27
27
  $budget = $_GET ["budget"];
@@ -48,7 +48,7 @@
48
48
  }
49
49
  // 最初のページへのリンク
50
50
  if ($start >= floor ( $disp / 2 )) {
51
- print '<a name="paging" href="?page=1&budget=' . $budget . '">1</a>';
51
+ print '<a name="paging" href="?page=1&budget=' . $budget . '&keyword=' . $keyword . '">1</a>';
52
52
  if ($start > floor ( $disp / 2 ))
53
53
  print "..."; // ドットの表示
54
54
  }