質問編集履歴

3

2019/04/04 11:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,251 +1,3 @@
1
1
  楽天ブックス総合検索APIを使った検索機能を作成しています。
2
2
 
3
3
  正しいワードでの検索時の表示方法はじっそうできたのですが。エラー時の表示がまだできていません。
4
-
5
- 通信が切れてる時、検索ワードが半角英数字1文字などのエラー時はfailメソッド内にresponseJSONに入ってるerror_descriptionを使わなければならないのですが、どのように利用すればいいのか調べてもわかりません。ご教授をお願いします。
6
-
7
-
8
-
9
- ```HTMLjQuery
10
-
11
- <!doctype html>
12
-
13
- <html>
14
-
15
- <head>
16
-
17
- <meta charset="UTF-8">
18
-
19
- <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
20
-
21
- <meta name="format-detection" content="telephone=no">
22
-
23
- <title>jQuery</title>
24
-
25
- <link rel="stylesheet" href="../../common/css/reset.css">
26
-
27
- <link rel="stylesheet" href="../../common/css/base.css">
28
-
29
- <link rel="stylesheet" href="./css/style.css">
30
-
31
- </head>
32
-
33
- <body>
34
-
35
- <div class="wrap">
36
-
37
- <div class="container">
38
-
39
- <div class="header">
40
-
41
- <p class="header__title">Search Books!</p>
42
-
43
- </div>
44
-
45
- <div class="search">
46
-
47
- <div class="search__text">
48
-
49
- <input type="text" id="js-search-word" class="search__text__input" placeholder="検索する">
50
-
51
- </div>
52
-
53
- <button id="js-search-button" class="search__btn">検索する</button>
54
-
55
- </div>
56
-
57
- <ul class="lists"></ul>
58
-
59
- </div>
60
-
61
- </div>
62
-
63
- <script src="../../common/js/jquery.js"></script>
64
-
65
- <script>
66
-
67
- $(function() {
68
-
69
- var pageNum = 0;
70
-
71
- var prevWord = '';
72
-
73
- $('#js-search-button').on('click',function() {
74
-
75
- var searchWord = $('#js-search-word').val();
76
-
77
- var wordCount = searchWord.replace(/\s+/g,'').length;
78
-
79
- if(prevWord == searchWord) {
80
-
81
- pageNum += 1;
82
-
83
- } else {
84
-
85
- $('.lists').empty();
86
-
87
- pageNum = 1;
88
-
89
- }
90
-
91
- prevWord = searchWord;
92
-
93
- $.ajax({
94
-
95
- url: '取得済み',
96
-
97
- type: 'GET',
98
-
99
- datatype: 'json',
100
-
101
- data: {
102
-
103
- applicationId: '取得済み',
104
-
105
- booksGenreId: '取得済み',
106
-
107
- keyword: searchWord,
108
-
109
- hits: 20,
110
-
111
- page: pageNum
112
-
113
- },
114
-
115
- }).done(function(data) {
116
-
117
- console.log(data);
118
-
119
- var searchResult = '';
120
-
121
- if(data.count > 0){
122
-
123
- $('.message').remove();
124
-
125
- $.each(data.Items,function(i,val){
126
-
127
- searchResult += '<li class="lists__item">' + '<div class="lists__item__inner">' + '<a href="'+ val.Item.itemUrl +'" class="lists__item__link" target="_blank">' +
128
-
129
- '<img src="'+ val.Item.largeImageUrl +'" class="lists__item__img" alt="">' +
130
-
131
- '<p class="lists__item__detail">作品名:'+ val.Item.title +'</p>' +
132
-
133
- '<p class="lists__item__detail">作者:'+ val.Item.author +'</p>' +
134
-
135
- '<p class="lists__item__detail">出版社:'+ val.Item.publisherName+'</p>' +
136
-
137
- '</a>' + '</div>' + '</li>';
138
-
139
- });
140
-
141
- $('.lists').prepend(searchResult);
142
-
143
- } else {
144
-
145
- $('.lists').prepend('<p class="message">検索結果が見つかりませんでした。他のキーワード(半角英数字1文字以上)で検索してください。</p>');
146
-
147
- }
148
-
149
- }).fail(function(err) {
150
-
151
- var log = $.parseJSON(err.status);
152
-
153
- $('.lists').html(log);
154
-
155
- });
156
-
157
- });
158
-
159
- });
160
-
161
- // 楽天ブックスの総合検索APIを使って製作してください。
162
-
163
- // answerの挙動を良く見てね!
164
-
165
- //
166
-
167
- // 下記URLにAPIの仕様が載ってるいので、ブラウザで開いて参考にしてください。
168
-
169
- // https://webservice.rakuten.co.jp/api/bookstotalsearch/
170
-
171
- //
172
-
173
- //
174
-
175
- // [使うメソッド]
176
-
177
- // $.each(配列, function functionName() {}) 配列に対しての繰り返し処理
178
-
179
- // $.ajax({}) 外部ファイルやURLに対してデータをリクエストすることができます。
180
-
181
- // 以下は今回使う$.ajaxの基本的な形です。
182
-
183
- //
184
-
185
- // $.ajax({
186
-
187
- // url: '取得済み',
188
-
189
- // type: 'GET',
190
-
191
- // datatype: 'json',
192
-
193
- // data: {
194
-
195
- // // 「区分:サービス固有パラメーター」を確認して、必要な情報をdata内に入れましょう。
196
-
197
- // applicationId: '取得済み', // (今回はこのIDを使用してください)
198
-
199
- // booksGenreId: '取得済み'
200
-
201
- // },
202
-
203
- // }).done(function(data) {
204
-
205
- // // この中にデータ取得後の動きを記述していきます。
206
-
207
- // console.log(data);
208
-
209
- // });
210
-
211
- //
212
-
213
- //
214
-
215
- // $.ajaxによってデータが取得できたら、必要なデータ(作品名とか作者名とか)を取得します。
216
-
217
- // 取得できたらHTMLに<ul class='lists'></ul>を用意しているので、その中に下のテンプレに沿ってデータを入れ込みましょう。
218
-
219
- // <li class='lists__item'>
220
-
221
- // <div class='lists__item__inner'>
222
-
223
- // <a href='' class='lists__item__link' target='_blank'>
224
-
225
- // <img src='' class='lists__item__img' alt=''>
226
-
227
- // <p class='lists__item__detail'>作品名:</p>
228
-
229
- // <p class='lists__item__detail'>作者 :</p>
230
-
231
- // <p class='lists__item__detail'>出版社:</p>
232
-
233
- // </a>
234
-
235
- // </div>
236
-
237
- // </li>
238
-
239
- //
240
-
241
- //
242
-
243
- //
244
-
245
- </script>
246
-
247
- </body>
248
-
249
- </html>
250
-
251
- ```

2

質問内容の編集

2019/04/04 11:47

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  正しいワードでの検索時の表示方法はじっそうできたのですが。エラー時の表示がまだできていません。
4
4
 
5
- エラー時はfailメソッド内にresponseJSONに入ってるerror_descriptionを使わなければならないのですが、どのように利用すればいいのか調べてもわかりません。ご教授をお願いします。
5
+ 通信が切れてる時、検索ワードが半角英数字1文字などのエラー時はfailメソッド内にresponseJSONに入ってるerror_descriptionを使わなければならないのですが、どのように利用すればいいのか調べてもわかりません。ご教授をお願いします。
6
6
 
7
7
 
8
8
 
@@ -148,9 +148,9 @@
148
148
 
149
149
  }).fail(function(err) {
150
150
 
151
- console.log(err);
151
+ var log = $.parseJSON(err.status);
152
+
152
-
153
+ $('.lists').html(log);
153
-
154
154
 
155
155
  });
156
156
 

1

各種コード変更

2019/04/04 08:10

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -184,7 +184,7 @@
184
184
 
185
185
  // $.ajax({
186
186
 
187
- // url: 'https://app.rakuten.co.jp/services/api/BooksTotal/Search/20130522',
187
+ // url: '取得済み',
188
188
 
189
189
  // type: 'GET',
190
190
 
@@ -194,9 +194,9 @@
194
194
 
195
195
  // // 「区分:サービス固有パラメーター」を確認して、必要な情報をdata内に入れましょう。
196
196
 
197
- // applicationId: '1019399324990976605', // (今回はこのIDを使用してください)
197
+ // applicationId: '取得済み', // (今回はこのIDを使用してください)
198
-
198
+
199
- // booksGenreId: '001'
199
+ // booksGenreId: '取得済み'
200
200
 
201
201
  // },
202
202