回答編集履歴

2

修正

2019/05/07 04:29

投稿

m.ts10806
m.ts10806

スコア80852

test CHANGED
File without changes

1

修正

2019/05/07 04:29

投稿

m.ts10806
m.ts10806

スコア80852

test CHANGED
@@ -3,3 +3,69 @@
3
3
 
4
4
 
5
5
  php側の処理はすべてajaxで、実行結果を受けとってJavaScriptで表示
6
+
7
+
8
+
9
+ -----
10
+
11
+ > 実装するとなった場合の、具体的な処理方法
12
+
13
+
14
+
15
+ いきなり実装を考えるとAjaxでなくともパンクするのは熟練者でも同じです。
16
+
17
+ まずは手順を文章で書きだします。
18
+
19
+
20
+
21
+ 0. 入力値をAjaxでphpプログラムに送信する
22
+
23
+ 0. phpプログラムで送信された値を受け取る
24
+
25
+ 0. バリデーションを行う
26
+
27
+ 0. バリデーション結果、NGならエラーを出力として返す→JavaScriptに戻る
28
+
29
+ 0. バリデーション結果、OKなら登録処理を行う
30
+
31
+ 0. 登録処理結果、NGならエラーを出力として返す→JavaScriptに戻る
32
+
33
+ 0. 登録処理結果、OKなら成功を出力として返す→JavaScriptに戻る
34
+
35
+ 0. Ajaxの結果を受け取り、NG,OKを通知する
36
+
37
+
38
+
39
+ ここで「出力して返す」について何をどのように返すかは仕様なので決めるところです。
40
+
41
+ 「NG,OKを通知する」についても同じですね。
42
+
43
+ 一般的に採用されるのはJSONでのやり取りですが、JSONはあくまで汎用性が高く扱いやすいというだけで、
44
+
45
+ 単に`0が成功`、`1がバリデーションエラー`、`9がシステムエラー`などコード決め打ちで返すこともあります。
46
+
47
+ (バリデーションエラーの場合はエラーメッセージもセパレータで返したり)
48
+
49
+
50
+
51
+ そこは決めるだけなので、決めてもらえば良いとして、
52
+
53
+ とりあえずは上記のような手順を自身で書きだして不足分は埋めて過剰分は抜いて「文章化」してください。
54
+
55
+ これはAjaxに限らず全てです。いきなり実装を考えると最初と最後でコードの質や整合性が保てずパンクして、
56
+
57
+ あっちを修正こっちを修正するうちにどんどんスパゲッティ(&ファット)コードになっていきます。
58
+
59
+ この「手順」は「詳細設計」にあたるものなので、これを考えることでロジックも身についていきます。
60
+
61
+ そして無駄なコードも減り、すべてが意味のあるコードになります。(自身でも説明できるコードになる)
62
+
63
+
64
+
65
+ もちろん、個々の手順も一気に実装するのではなく1つ1つ単体で確認していきます。
66
+
67
+ phpから返す情報も最初は固定値で、次に変数で、次に送信された情報で・・・とステップアップしていきます。
68
+
69
+ **この方が着実で、実はいきなり実装に取り組むより早く済みます。**
70
+
71
+ 熟練者でもいきなり全実装にかかえる人はいないのではないでしょうか。(使える既存コードが手元にあるならともかく)