回答編集履歴

1

修正

2019/08/26 00:18

投稿

m.ts10806
m.ts10806

スコア80852

test CHANGED
@@ -1 +1,35 @@
1
+ # 原因理由
2
+
3
+ SUBMITはform actionに指定されたURLに送信するものです(未指定の場合は実行している自身)。
4
+
5
+ つまり送信先のプログラムは送信されたリクエストを以て再ロードされます。
6
+
7
+ 再ロードされるので当然ながら「画面上のクリック」で動作するモーダルは初めの状態、
8
+
9
+ つまり上がってきていない状態のままになります。
10
+
11
+
12
+
13
+ onclickにfalseを指定したところでsubmitのイベントが止められるわけではありませんし、
14
+
15
+ そもそも送信されないのでPHPは実行されません。
16
+
17
+
18
+
19
+ # 対策
20
+
21
+ ボタンのクリックイベントにて[Event.preventDefault()
22
+
23
+ ](https://developer.mozilla.org/ja/docs/Web/API/Event/preventDefault)で送信無効にし
24
+
1
- Ajaxを使ってください。
25
+ Ajaxを使ってチェックを行ってください。
26
+
27
+
28
+
29
+ Ajaxを使うので当然ながらPHPによるリダイレクトはできません。
30
+
31
+ チェック結果を以てSUBMIT実行するのもあまりよくありませんので、
32
+
33
+ Ajax内でチェックし、エラーあればエラーだけ返し、エラーなければ本来の処理を行い「OK」だけ返して
34
+
35
+ その結果次第で、エラーをJavaScriptでモーダル内に表示するか、JavaScriptでリダイレクトするかを切り分けてください。