質問するログイン新規登録

回答編集履歴

1

修正

2019/08/26 00:18

投稿

m.ts10806
m.ts10806

スコア80896

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