質問編集履歴

3

訂正

2017/06/07 23:16

投稿

norisukeoji
norisukeoji

スコア14

test CHANGED
File without changes
test CHANGED
@@ -8,23 +8,7 @@
8
8
 
9
9
  処理自体はうまくいくのですが、バリデーションエラー時のエラーメッセージの取り出し方がわかりません。
10
10
 
11
- エラー別にメッセージを取り出したいため、
12
-
13
-
14
-
15
- ```jQuery
16
-
17
- error: function(XMLHttpRequest, textStatus, errorThrown){
18
-
19
- alert(XMLHttpRequest.responseText)
20
-
21
- }
22
-
23
- ```
24
-
25
-
26
-
27
- う形で直接Requestで設定したメッセージを表示しようとしたのですが、返ってくるメッセージはひどく文字化けしています。
11
+ エラー別にメッセージを取り出したため、直接Requestで設定したメッセージを表示しようとしたのですが、返ってくるメッセージはひどく文字化けしています。
28
12
 
29
13
  Chromeのデベロッパーツールなどで確認したところ、Requestコントローラーで設定したメッセージはPreviewタブでは正常に表示され、Responseタブでは文字化けした状態でした。
30
14
 

2

コード

2017/06/07 23:16

投稿

norisukeoji
norisukeoji

スコア14

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- Laravel+Ajaxで登録フォームを作っています。
5
+ Laravel5.2.+Ajaxで登録フォームを作っています。
6
6
 
7
7
  バリデーション自体はサーバーサイドで行いたいためPHP上で行うよう、AjaxでPHPにリクエストを送り、Laravelのコントローラーを通してRequestバリデーションを行っています。そちらでエラーメッセージなども設定しています。
8
8
 
@@ -29,3 +29,115 @@
29
29
  Chromeのデベロッパーツールなどで確認したところ、Requestコントローラーで設定したメッセージはPreviewタブでは正常に表示され、Responseタブでは文字化けした状態でした。
30
30
 
31
31
  正常にエラーメッセージを表示するにはどうすればよいでしょうか。
32
+
33
+
34
+
35
+ ---
36
+
37
+
38
+
39
+ これをControllerから呼び出してバリデーションしています。
40
+
41
+ ```php
42
+
43
+ Request.php
44
+
45
+ ~~~~~
46
+
47
+ public function rules()
48
+
49
+ {
50
+
51
+ return [
52
+
53
+ 'hoge' => 'sometimes|required',
54
+
55
+ 'hoge2' => 'sometimes|required',
56
+
57
+ ];
58
+
59
+ }
60
+
61
+
62
+
63
+ public function messages()
64
+
65
+ {
66
+
67
+ return [
68
+
69
+ 'hoge.required' => '必須です。',
70
+
71
+ 'hoge2.required' => '必須です。',
72
+
73
+ ];
74
+
75
+ }
76
+
77
+ ```
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+ ```javascript
86
+
87
+ $(document).ready(function()
88
+
89
+ {
90
+
91
+ $.ajaxSetup({
92
+
93
+ headers: {
94
+
95
+ 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
96
+
97
+ }
98
+
99
+ });
100
+
101
+
102
+
103
+ $.ajax({
104
+
105
+ type: "POST",
106
+
107
+ url: "complete",
108
+
109
+ dataType: 'script',
110
+
111
+ scriptCharset: 'utf-8',
112
+
113
+ data: data,
114
+
115
+
116
+
117
+ success: function(data, dataType)
118
+
119
+ {
120
+
121
+ alert("登録が完了しました");
122
+
123
+ },
124
+
125
+
126
+
127
+ error: function(XMLHttpRequest, textStatus, errorThrown)
128
+
129
+ {
130
+
131
+ alert('エラー' + XMLHttpRequest.responseText)
132
+
133
+ }
134
+
135
+ });
136
+
137
+ return false;
138
+
139
+ });
140
+
141
+ });
142
+
143
+ ```

1

初心者タグ付け

2017/06/07 23:14

投稿

norisukeoji
norisukeoji

スコア14

test CHANGED
File without changes
test CHANGED
@@ -1,3 +1,7 @@
1
+ プログラミング初心者です。
2
+
3
+
4
+
1
5
  Laravel+Ajaxで登録フォームを作っています。
2
6
 
3
7
  バリデーション自体はサーバーサイドで行いたいためPHP上で行うよう、AjaxでPHPにリクエストを送り、Laravelのコントローラーを通してRequestバリデーションを行っています。そちらでエラーメッセージなども設定しています。