質問編集履歴

3

追記

2018/03/06 08:03

投稿

MeB
MeB

スコア104

test CHANGED
File without changes
test CHANGED
@@ -251,3 +251,109 @@
251
251
  mamp/htdocs/json/json.jsを作りそちらに記述し、
252
252
 
253
253
  直接URLを打ち込んでみましたがconsole内にはなにも表示されませんでした…
254
+
255
+
256
+
257
+ ```js
258
+
259
+ $( function() {
260
+
261
+
262
+
263
+ $('#btn1').click(
264
+
265
+ function(){
266
+
267
+ $("#out6").html("データ取得中です");
268
+
269
+
270
+
271
+ // 1.$.ajaxメソッドで通信を行います。
272
+
273
+ // dataでは、フォームの内容をserialize()している
274
+
275
+ // →serialize()の内容は、cs1=custom1&cs2=custom2
276
+
277
+ $.ajax({
278
+
279
+ url:'http://httpbin.org/post', // 通信先のURL
280
+
281
+ type:'POST', // 使用するHTTPメソッド (GET/ POST)
282
+
283
+ data:$("#form1").serialize(), // 送信するデータ
284
+
285
+ dataType:'text', // 応答のデータの種類
286
+
287
+ // (xml/html/script/json/jsonp/text)
288
+
289
+ timeout:1000, // 通信のタイムアウトの設定(ミリ秒)
290
+
291
+
292
+
293
+ // 2. doneは、通信に成功した時に実行される
294
+
295
+ // 引数のdata1は、通信で取得したデータ
296
+
297
+ // 引数のtextStatusは、通信結果のステータス
298
+
299
+ // 引数のjqXHRは、XMLHttpRequestオブジェクト
300
+
301
+ }).done(function(data1,textStatus,jqXHR) {
302
+
303
+ $("#out1").html(jqXHR.status); //jqXHR.statusを表示
304
+
305
+ $("#out2").html(textStatus); //textStatusを表示
306
+
307
+
308
+
309
+ // 3. キーを指定して値を表示
310
+
311
+ $("#out4").html(data1["form"]["cs1"]);
312
+
313
+
314
+
315
+ // 4. オブジェクトをJSON形式の文字列に変換
316
+
317
+ var data2 = JSON.stringify(data1);
318
+
319
+ console.log(data2); //コンソールにJSON形式で表示される
320
+
321
+
322
+
323
+ // 5.JSON形式の文字列をオブジェクトにし、
324
+
325
+ // キーを指定して値(httpbin.org)を表示
326
+
327
+ var data3 = JSON.parse(data2);
328
+
329
+ $("#out5").html(data3["headers"]["Host"]);
330
+
331
+
332
+
333
+ // 6. failは、通信に失敗した時に実行される
334
+
335
+ }).fail(function(jqXHR, textStatus, errorThrown ) {
336
+
337
+ $("#out1").html(jqXHR.status); //jqXHR.statusを表示
338
+
339
+ $("#out2").html(textStatus); //textStatusを表示
340
+
341
+ $("#out3").html(errorThrown); //errorThrownを表示
342
+
343
+
344
+
345
+ // 7. alwaysは、成功/失敗に関わらず実行される
346
+
347
+ }).always(function(){
348
+
349
+ $("#out6").html("complete"); //表示3
350
+
351
+
352
+
353
+ });
354
+
355
+ });
356
+
357
+ });
358
+
359
+ ```

2

追記

2018/03/06 08:03

投稿

MeB
MeB

スコア104

test CHANGED
File without changes
test CHANGED
@@ -229,3 +229,25 @@
229
229
  </html>
230
230
 
231
231
  ```
232
+
233
+
234
+
235
+ 追記
236
+
237
+ url部分をhttp://httpbin.org/post
238
+
239
+ にもどすと
240
+
241
+ ```json
242
+
243
+ {"args":{},"data":"","files":{},"form":{"cs1":"custom1","cs2":"custom2"},"headers":{"Accept":"application/json, text/javascript, */*; q=0.01","Accept-Encoding":"gzip, deflate","Accept-Language":"ja,en-US;q=0.9,en;q=0.8"...}
244
+
245
+ ```
246
+
247
+ のようなものが帰ってきていることは確認できるのですが、
248
+
249
+ 上記のphp内の<script>を
250
+
251
+ mamp/htdocs/json/json.jsを作りそちらに記述し、
252
+
253
+ 直接URLを打ち込んでみましたがconsole内にはなにも表示されませんでした…

1

訂正

2018/03/06 06:30

投稿

MeB
MeB

スコア104

test CHANGED
File without changes
test CHANGED
@@ -67,3 +67,165 @@
67
67
  MAMP上では不可能ということでしょうか?
68
68
 
69
69
  ご教示宜しくお願いします。
70
+
71
+
72
+
73
+ ```php
74
+
75
+ <!DOCTYPE html>
76
+
77
+ <html lang="ja">
78
+
79
+ <head>
80
+
81
+ <meta charset="utf-8">
82
+
83
+ <title>jqueryのajaxのサンプル</title>
84
+
85
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
86
+
87
+ <script>
88
+
89
+ $( function() {
90
+
91
+
92
+
93
+ $('#btn1').click(
94
+
95
+ function(){
96
+
97
+ $("#out6").html("データ取得中です");
98
+
99
+
100
+
101
+ // 1.$.ajaxメソッドで通信を行います。
102
+
103
+ // dataでは、フォームの内容をserialize()している
104
+
105
+ // →serialize()の内容は、cs1=custom1&cs2=custom2
106
+
107
+ $.ajax({
108
+
109
+ url:'/json/post', // 通信先のURL
110
+
111
+ type:'POST', // 使用するHTTPメソッド (GET/ POST)
112
+
113
+ data:$("#form1").serialize(), // 送信するデータ
114
+
115
+ dataType:'json', // 応答のデータの種類
116
+
117
+ // (xml/html/script/json/jsonp/text)
118
+
119
+ timeout:1000, // 通信のタイムアウトの設定(ミリ秒)
120
+
121
+
122
+
123
+ // 2. doneは、通信に成功した時に実行される
124
+
125
+ // 引数のdata1は、通信で取得したデータ
126
+
127
+ // 引数のtextStatusは、通信結果のステータス
128
+
129
+ // 引数のjqXHRは、XMLHttpRequestオブジェクト
130
+
131
+ }).done(function(data1,textStatus,jqXHR) {
132
+
133
+ $("#out1").html(jqXHR.status); //jqXHR.statusを表示
134
+
135
+ $("#out2").html(textStatus); //textStatusを表示
136
+
137
+
138
+
139
+ // 3. キーを指定して値を表示
140
+
141
+ $("#out4").html(data1["form"]["cs1"]);
142
+
143
+
144
+
145
+ // 4. オブジェクトをJSON形式の文字列に変換
146
+
147
+ var data2 = JSON.stringify(data1);
148
+
149
+ console.log(data2); //コンソールにJSON形式で表示される
150
+
151
+
152
+
153
+ // 5.JSON形式の文字列をオブジェクトにし、
154
+
155
+ // キーを指定して値(httpbin.org)を表示
156
+
157
+ var data3 = JSON.parse(data2);
158
+
159
+ $("#out5").html(data3["headers"]["Host"]);
160
+
161
+
162
+
163
+ // 6. failは、通信に失敗した時に実行される
164
+
165
+ }).fail(function(jqXHR, textStatus, errorThrown ) {
166
+
167
+ $("#out1").html(jqXHR.status); //jqXHR.statusを表示
168
+
169
+ $("#out2").html(textStatus); //textStatusを表示
170
+
171
+ $("#out3").html(errorThrown); //errorThrownを表示
172
+
173
+
174
+
175
+ // 7. alwaysは、成功/失敗に関わらず実行される
176
+
177
+ }).always(function(){
178
+
179
+ $("#out6").html("complete"); //表示3
180
+
181
+
182
+
183
+ });
184
+
185
+ });
186
+
187
+ });
188
+
189
+ </script>
190
+
191
+ </head>
192
+
193
+ <body >
194
+
195
+ <p>jqXHR.statusを表示:<span id="out1"></span></p>
196
+
197
+ <p>textStatusを表示:<span id="out2"></span></p>
198
+
199
+ <p>errorThrownを表示:<span id="out3"></span></p>
200
+
201
+ <p>表示1:<span id="out4"></span></p>
202
+
203
+ <p>表示2:<span id="out5"></span></p>
204
+
205
+ <p>表示3:<span id="out6"></span></p>
206
+
207
+
208
+
209
+ <p>ボタンを押すと通信が始まります</p>
210
+
211
+
212
+
213
+ <form id="form1">
214
+
215
+ <input type="button" id="btn1" value="ボタン1"><br/>
216
+
217
+ テキストボックス1<br/>
218
+
219
+ <input type="text" name="cs1" value="custom1" maxlength="10"><br/>
220
+
221
+ テキストボックス2<br/>
222
+
223
+ <input type="text" name="cs2" value="custom2" maxlength="10">
224
+
225
+ </form>
226
+
227
+ </body>
228
+
229
+ </html>
230
+
231
+ ```