回答編集履歴

2

基本的なAjaxの仕組みについて誤った理解をしていました。回答を是正しました。

2019/01/15 12:00

投稿

noka_blank
noka_blank

スコア252

test CHANGED
@@ -62,4 +62,68 @@
62
62
 
63
63
 
64
64
 
65
- このようにすれば、動作すると思います。
65
+ ~~このようにすれば、動作すると思います。~~
66
+
67
+
68
+
69
+ この方法では動作しません。
70
+
71
+ 以下のようにする必要があります。
72
+
73
+
74
+
75
+ ```js
76
+
77
+ function sample(samNo,samNo2) {
78
+
79
+ var prm = {
80
+
81
+ samNo:samNo,
82
+
83
+ samNo2:samNo2
84
+
85
+ };
86
+
87
+ var ajax = $.ajax({
88
+
89
+ url: './api/sample.php',
90
+
91
+ type: 'POST',
92
+
93
+ cache: false,
94
+
95
+ dataType: 'json',
96
+
97
+ data: prm,
98
+
99
+ async: false
100
+
101
+ });
102
+
103
+ return ajax;
104
+
105
+ }
106
+
107
+ function success(o) {
108
+
109
+ if (o.status != 0) {
110
+
111
+ alert(o.message);
112
+
113
+ return false;
114
+
115
+ }
116
+
117
+ alert(o.data['hoge']);
118
+
119
+ return o.data['hoge'];
120
+
121
+ }
122
+
123
+
124
+
125
+ var sample = sample(1, 2);
126
+
127
+ success(sample.responseJSON);
128
+
129
+ ```

1

指摘箇所が間違っていたようです。訂正しました。

2019/01/15 12:00

投稿

noka_blank
noka_blank

スコア252

test CHANGED
@@ -1,13 +1,65 @@
1
1
  ```js
2
2
 
3
- // こうなっているところを
3
+ function sample(samNo,samNo2) {
4
4
 
5
+ var prm = {
6
+
7
+ samNo:samNo,
8
+
9
+ samNo2:samNo2
10
+
11
+ };
12
+
13
+ // 返り値を一時的に保存
14
+
15
+ var ajax = $.ajax({
16
+
17
+ url: './api/sample.php',
18
+
19
+ type: 'POST',
20
+
21
+ cache: false,
22
+
23
+ dataType: 'json',
24
+
25
+ data: prm,
26
+
27
+ async: false,
28
+
29
+ success: function(o) {
30
+
31
+ if (o.status != 0) {
32
+
33
+ alert(o.message);
34
+
35
+ return false;
36
+
37
+ }
38
+
39
+ alert(o.data['hoge']);
40
+
5
- return o.data[hoge];
41
+ return o.data['hoge'];
42
+
43
+ },
44
+
45
+ error: function(xhr, textStatus, errorThrown) {
46
+
47
+ alert("ajax Error!!!\n" + textStatus + ' ' + errorThrown);
48
+
49
+ return false;
50
+
51
+ }
52
+
53
+ });
54
+
55
+ // 関数の返り値としてもreturn
56
+
57
+ return ajax;
58
+
59
+ }
60
+
61
+ ```
6
62
 
7
63
 
8
64
 
9
- // こうすれば動と思います。
65
+ のよすれば作すると思います。
10
-
11
- return o.data['hoge'];
12
-
13
- ```