回答編集履歴
1
修正
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でリダイレクトするかを切り分けてください。
|