質問編集履歴

2

Javascriiptを修正しました

2017/08/17 13:29

投稿

yokatone
yokatone

スコア43

test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- function getAjax = function(controller, action, param){
37
+ function getAjax(controller, action, param){
38
38
 
39
39
  var url = "../testController/getOtherHtml";
40
40
 
@@ -164,6 +164,36 @@
164
164
 
165
165
 
166
166
 
167
+ ```json
168
+
169
+ <script>
170
+
171
+ var result = getAjax("targetController", "targetView", 1);
172
+
173
+ console.log(result);
174
+
175
+ </script>
176
+
177
+
178
+
179
+ responseJSON : {
180
+
181
+ <html>
182
+
183
+ <body>
184
+
185
+ <!-- targetTableの中身 -->
186
+
187
+ </body>
188
+
189
+ </html>
190
+
191
+ }
192
+
193
+ ```
194
+
195
+
196
+
167
197
  ###補足情報(言語/FW/ツール等のバージョンなど)
168
198
 
169
199
  CakePHP 3.4.12

1

Javascriptのソースを追記しました

2017/08/17 13:29

投稿

yokatone
yokatone

スコア43

test CHANGED
File without changes
test CHANGED
@@ -8,17 +8,7 @@
8
8
 
9
9
 
10
10
 
11
- JSのajaxで`http://localhost/Controller/view/param`で取得することも考えたのですが、
12
-
13
- CakePHPの組み込みテストサーバーだと、クライアントから多重にリクエストしても受け付けずハングしてしまうようなので
14
-
15
- 実際にブラウザに表示された結果から取得するというのは
16
-
17
- いずれにせよバグの温床になりかねない気がして辞めました。
18
-
19
-
20
-
21
- そこで、独立したControllerを作成して、
11
+ 独立したControllerを作成して、
22
12
 
23
13
  コントローラー名、アクション名、渡したいデータを指定すると
24
14
 
@@ -37,6 +27,52 @@
37
27
 
38
28
 
39
29
  ###実現したいソースコード
30
+
31
+
32
+
33
+ ```javascript
34
+
35
+
36
+
37
+ function getAjax = function(controller, action, param){
38
+
39
+ var url = "../testController/getOtherHtml";
40
+
41
+ var data = {controller: controller, action: action, param: param};
42
+
43
+
44
+
45
+ var result = $.ajax({
46
+
47
+ url : url,
48
+
49
+ type: "post",
50
+
51
+ dataType: "json",
52
+
53
+ data: data,
54
+
55
+ async: false
56
+
57
+ }).done(function (response) {
58
+
59
+ return response;
60
+
61
+ }).fail(function () {
62
+
63
+ return false;
64
+
65
+ });
66
+
67
+
68
+
69
+ return result['responseJSON'];
70
+
71
+ }
72
+
73
+ ```
74
+
75
+
40
76
 
41
77
  ```php
42
78