質問編集履歴

1

ご指摘をいただき、javascriptの処理部分のコードの載せ忘れを訂正いたしました。

2019/05/07 06:29

投稿

peyon
peyon

スコア10

test CHANGED
File without changes
test CHANGED
@@ -153,3 +153,227 @@
153
153
 
154
154
 
155
155
  ```
156
+
157
+
158
+
159
+ ### 実現したいこと
160
+
161
+
162
+
163
+ PHPの処理を実行した後に画面遷移を行いたい。
164
+
165
+
166
+
167
+ ### 発生している問題・エラーメッセージ
168
+
169
+
170
+
171
+ 0. HTMLのボタンを押したときに画面遷移させる→phpの処理が行われなかった
172
+
173
+ 0. phpにheaderを表記→ポップアップに指定したURLのコードが表記される。下記の画像のようになります。
174
+
175
+
176
+
177
+ ![イメージ説明](b47ccd481c1d900e366b89a27363e272.png)
178
+
179
+
180
+
181
+ ### HTMLでの画面遷移表記
182
+
183
+
184
+
185
+ ```html
186
+
187
+ <!DOCTYPE html>
188
+
189
+ <html lang="ja">
190
+
191
+ <head>
192
+
193
+ <meta charset="utf-8">
194
+
195
+ <meta http-equiv="Pragma" content="no-cache">
196
+
197
+ <meta http-equiv="Cache-Control" content="no-cache">
198
+
199
+ <meta http-equiv="Expires" content="0">
200
+
201
+ <link rel="stylesheet" href="geo_guide_03.css"/>
202
+
203
+ <title>ジオツアーシステム(管理者03)</title>
204
+
205
+ </head>
206
+
207
+
208
+
209
+ <body>
210
+
211
+ <section>
212
+
213
+ <form id="my_form">
214
+
215
+ <input type="file" name="file_1">
216
+
217
+ <button type="button" onclick="file_upload()";"location.href='ほにゃほにゃ'>アップロード</button>
218
+
219
+ <meta http-equiv="refresh"content="URL=https://www2.yoslab.net/~jyamamoto/system/index.html">
220
+
221
+ </form>
222
+
223
+ </section>
224
+
225
+ </body>
226
+
227
+ <script src="./js/geo_guide_03_upload.js"></script>
228
+
229
+
230
+
231
+ <script src="jquery-3.3.1.min.js"></script>
232
+
233
+
234
+
235
+ ```
236
+
237
+
238
+
239
+ ###PHPでの画面遷移表記
240
+
241
+
242
+
243
+ ```php
244
+
245
+ <?php
246
+
247
+ // パス名を取得
248
+
249
+ $img_name = $_FILES['file_1']['name'];
250
+
251
+
252
+
253
+ //拡張子を取得
254
+
255
+ $ext_object = new SplFileInfo($img_name);
256
+
257
+ $ext = $ext_object->getExtension();
258
+
259
+ var_dump($ext);
260
+
261
+ var_dump(gettype($ext));
262
+
263
+
264
+
265
+
266
+
267
+ if($ext == 'png'){
268
+
269
+ echo "pngである判断はされました";
270
+
271
+ $new_file_name="sample.png";
272
+
273
+ // move_uploaded_file($_FILES['file_1']['tmp_name'], './img/img_sample/'.$new_file_name);
274
+
275
+ }elseif($ext == 'jpg'){
276
+
277
+ echo "jpgである判断はされました";
278
+
279
+ $new_file_name="sample.jpg";
280
+
281
+ // move_uploaded_file($_FILES['file_1']['tmp_name'], './img/img_sample/'.$new_file_name);
282
+
283
+ }elseif($ext == 'jpeg'){
284
+
285
+ $new_file_name="sample.jpeg";
286
+
287
+ // move_uploaded_file($_FILES['file_1']['tmp_name'], './img/img_sample/'.$new_file_name);
288
+
289
+ }
290
+
291
+
292
+
293
+ // 画像を保存
294
+
295
+ move_uploaded_file($_FILES['file_1']['tmp_name'], './img/img_sample/'.$new_file_name);
296
+
297
+
298
+
299
+
300
+
301
+ // 成功したら,次の画面に遷移する
302
+
303
+ header('Location: https://ほにゃほにゃ');
304
+
305
+ exit;
306
+
307
+
308
+
309
+ ?>
310
+
311
+
312
+
313
+ ```
314
+
315
+ ###javascriptでPOSTで送信する処理
316
+
317
+
318
+
319
+ ```javascrip
320
+
321
+ function file_upload()
322
+
323
+ {
324
+
325
+ var pathdata;
326
+
327
+ // フォームデータを取得f
328
+
329
+ var submit_data = new FormData($('#my_form').get(0));
330
+
331
+
332
+
333
+ //画像ファイルでないときの処理
334
+
335
+ /*if(submit_data.type.indexOf("image") < 0)
336
+
337
+ {
338
+
339
+ alert("画像ファイルを指定してください。");
340
+
341
+ return false;
342
+
343
+ }*/
344
+
345
+
346
+
347
+ // POSTでアップロード
348
+
349
+ $.ajax({
350
+
351
+ url : "geo_guide_03_main.php",
352
+
353
+ type: 'POST',
354
+
355
+ data: submit_data,
356
+
357
+ processData: false, // jQueryがデータを処理しないように設定
358
+
359
+ contentType: false, // jQueryがcontentTypeを設定しないように設定
360
+
361
+ success: function(data) {
362
+
363
+ alert("success"+data);
364
+
365
+
366
+
367
+ pathdata = data;
368
+
369
+ console.log(pathdata);
370
+
371
+ },
372
+
373
+ error: function(data) {alert("error:"+data.statusText);}
374
+
375
+ });
376
+
377
+ }
378
+
379
+ ```