質問編集履歴
16
変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,3 @@
|
|
1
|
-
cakephp2
|
2
|
-
|
3
|
-
|
4
|
-
|
5
1
|
1.やりたいこと
|
6
2
|
|
7
3
|
select1で選択された項目を基準にその下に設置しているselect2の項目を変えたい。
|
@@ -28,8 +24,6 @@
|
|
28
24
|
|
29
25
|
```ajax
|
30
26
|
|
31
|
-
$('#select1').on('change', function() {
|
32
|
-
|
33
27
|
var id = $(this).val();//指定のid
|
34
28
|
|
35
29
|
$.ajax({
|
@@ -45,8 +39,6 @@
|
|
45
39
|
},
|
46
40
|
|
47
41
|
dataType: 'json',
|
48
|
-
|
49
|
-
}).trigger('change');
|
50
42
|
|
51
43
|
```
|
52
44
|
|
@@ -103,65 +95,3 @@
|
|
103
95
|
しかし、jsで格納のやり方がわからず。
|
104
96
|
|
105
97
|
教えていただけますか?
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
-------18:10追記
|
112
|
-
|
113
|
-
ご指摘いただいたparseをjs内に記述しましたがだめでした。
|
114
|
-
|
115
|
-
これは$responseとしては受け取れず、responseとしてjs内でしか受け取れていないためです。
|
116
|
-
|
117
|
-
試したコードは以下です。
|
118
|
-
|
119
|
-
```
|
120
|
-
|
121
|
-
const js_array = JSON.parse('<?php echo $response; ?>');
|
122
|
-
|
123
|
-
```
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
-------18:20追記
|
128
|
-
|
129
|
-
シンプルに考えました。responseは取れているので、タグとして出力すればよいと。
|
130
|
-
|
131
|
-
しかしappendでは追加されていってしまう。
|
132
|
-
|
133
|
-
indexをkeyとして、valueを表示させたい。配列としてphpへ出力できるか?
|
134
|
-
|
135
|
-
```ここに言語を入力
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
$.each(response.data.hairetuList, function(index,value){
|
140
|
-
|
141
|
-
$('#select2').append('<option>' + value + '</option>');
|
142
|
-
|
143
|
-
})
|
144
|
-
|
145
|
-
```
|
146
|
-
|
147
|
-
-------19:10追記
|
148
|
-
|
149
|
-
optionのvalue値が設定されていない為でした。
|
150
|
-
|
151
|
-
value値はindexにしたいが、表示はvalueにしたいため、編集。
|
152
|
-
|
153
|
-
```ここに言語を入力
|
154
|
-
|
155
|
-
$.each(response.data.hairetuList, function(index,value){
|
156
|
-
|
157
|
-
$('#select2').append('<option value="' + index + '">' + value + '</option>');
|
158
|
-
|
159
|
-
})
|
160
|
-
|
161
|
-
```
|
162
|
-
|
163
|
-
しかし、一回目にappendされたものが残っているため、後ろに追加されていってしまう。処理を初期化し、2回目以降は1回目のものを削除した状態からappendしたい。
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
※ご回答に対し、質問文に追記していっています。ご了承ください。
|
15
jsの処理を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,11 +24,11 @@
|
|
24
24
|
|
25
25
|
|
26
26
|
|
27
|
-
|
27
|
+
triggerを記述したのは、初期表示の時点で処理を実行したいためです。
|
28
|
-
|
29
|
-
これをphpで再度変数に入っている連想配列として取得?するにはどうすればいいですか?
|
30
28
|
|
31
29
|
```ajax
|
30
|
+
|
31
|
+
$('#select1').on('change', function() {
|
32
32
|
|
33
33
|
var id = $(this).val();//指定のid
|
34
34
|
|
@@ -45,6 +45,8 @@
|
|
45
45
|
},
|
46
46
|
|
47
47
|
dataType: 'json',
|
48
|
+
|
49
|
+
}).trigger('change');
|
48
50
|
|
49
51
|
```
|
50
52
|
|
14
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -146,19 +146,19 @@
|
|
146
146
|
|
147
147
|
optionのvalue値が設定されていない為でした。
|
148
148
|
|
149
|
-
value値はindexにしたいが、表示はvalueにしたい
|
149
|
+
value値はindexにしたいが、表示はvalueにしたいため、編集。
|
150
150
|
|
151
151
|
```ここに言語を入力
|
152
152
|
|
153
153
|
$.each(response.data.hairetuList, function(index,value){
|
154
154
|
|
155
|
-
$('#select2').append('<option value="'
|
155
|
+
$('#select2').append('<option value="' + index + '">' + value + '</option>');
|
156
156
|
|
157
157
|
})
|
158
158
|
|
159
159
|
```
|
160
160
|
|
161
|
-
|
161
|
+
しかし、一回目にappendされたものが残っているため、後ろに追加されていってしまう。処理を初期化し、2回目以降は1回目のものを削除した状態からappendしたい。
|
162
162
|
|
163
163
|
|
164
164
|
|
13
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -142,6 +142,24 @@
|
|
142
142
|
|
143
143
|
```
|
144
144
|
|
145
|
+
-------19:10追記
|
146
|
+
|
147
|
+
optionのvalue値が設定されていない為でした。
|
148
|
+
|
149
|
+
value値はindexにしたいが、表示はvalueにしたいです。
|
150
|
+
|
151
|
+
```ここに言語を入力
|
152
|
+
|
153
|
+
$.each(response.data.hairetuList, function(index,value){
|
154
|
+
|
155
|
+
$('#select2').append('<option value="' . index . '">' + value + '</option>');
|
156
|
+
|
157
|
+
})
|
158
|
+
|
159
|
+
```
|
160
|
+
|
161
|
+
半強制的にこうしてみましたが、だめでした...。
|
162
|
+
|
145
163
|
|
146
164
|
|
147
165
|
※ご回答に対し、質問文に追記していっています。ご了承ください。
|
12
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -126,7 +126,9 @@
|
|
126
126
|
|
127
127
|
シンプルに考えました。responseは取れているので、タグとして出力すればよいと。
|
128
128
|
|
129
|
-
しかしappendでは追加されていってしまう
|
129
|
+
しかしappendでは追加されていってしまう。
|
130
|
+
|
131
|
+
indexをkeyとして、valueを表示させたい。配列としてphpへ出力できるか?
|
130
132
|
|
131
133
|
```ここに言語を入力
|
132
134
|
|
11
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -126,7 +126,7 @@
|
|
126
126
|
|
127
127
|
シンプルに考えました。responseは取れているので、タグとして出力すればよいと。
|
128
128
|
|
129
|
-
しかしappendでは追加されていってしまうので
|
129
|
+
しかしappendでは追加されていってしまう上に、phpで取得できていないのでその後の処理に影響が出る。
|
130
130
|
|
131
131
|
```ここに言語を入力
|
132
132
|
|
10
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -126,7 +126,7 @@
|
|
126
126
|
|
127
127
|
シンプルに考えました。responseは取れているので、タグとして出力すればよいと。
|
128
128
|
|
129
|
-
しかしappendでは追加されていってしまう。
|
129
|
+
しかしappendでは追加されていってしまうので、押されたもののみ表示したい。
|
130
130
|
|
131
131
|
```ここに言語を入力
|
132
132
|
|
9
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -122,4 +122,24 @@
|
|
122
122
|
|
123
123
|
|
124
124
|
|
125
|
+
-------18:20追記
|
126
|
+
|
125
|
-
|
127
|
+
シンプルに考えました。responseは取れているので、タグとして出力すればよいと。
|
128
|
+
|
129
|
+
しかしappendでは追加されていってしまう。
|
130
|
+
|
131
|
+
```ここに言語を入力
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
$.each(response.data.hairetuList, function(index,value){
|
136
|
+
|
137
|
+
$('#select2').append('<option>' + value + '</option>');
|
138
|
+
|
139
|
+
})
|
140
|
+
|
141
|
+
```
|
142
|
+
|
143
|
+
|
144
|
+
|
145
|
+
※ご回答に対し、質問文に追記していっています。ご了承ください。
|
8
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -106,4 +106,20 @@
|
|
106
106
|
|
107
107
|
|
108
108
|
|
109
|
+
-------18:10追記
|
110
|
+
|
111
|
+
ご指摘いただいたparseをjs内に記述しましたがだめでした。
|
112
|
+
|
113
|
+
これは$responseとしては受け取れず、responseとしてjs内でしか受け取れていないためです。
|
114
|
+
|
115
|
+
試したコードは以下です。
|
116
|
+
|
117
|
+
```
|
118
|
+
|
119
|
+
const js_array = JSON.parse('<?php echo $response; ?>');
|
120
|
+
|
121
|
+
```
|
122
|
+
|
123
|
+
|
124
|
+
|
109
125
|
※質問の仕方を改めるため途中で編集しました。ご迷惑おかけしました。今一度ご教授お願いします。
|
7
,
test
CHANGED
File without changes
|
test
CHANGED
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
|
22
22
|
|
23
|
-
この
|
23
|
+
この2の流れを下記に記載します。
|
24
24
|
|
25
25
|
|
26
26
|
|
6
質問文を編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,4 +1,26 @@
|
|
1
1
|
cakephp2
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
1.やりたいこと
|
6
|
+
|
7
|
+
select1で選択された項目を基準にその下に設置しているselect2の項目を変えたい。
|
8
|
+
|
9
|
+
2.そのために
|
10
|
+
|
11
|
+
select1で選択された項目をjsで取得、jsonとしてcontrollerへ投げ、そのidを基準にselect2用のデータをDBから取得、$responseに格納しechoで戻す。
|
12
|
+
|
13
|
+
3.それを(本件の問題点)
|
14
|
+
|
15
|
+
jsで取得 or phpで取得し、select2のデータを表示させる。
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
です。
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
この1と2の流れを下記に記載します。
|
2
24
|
|
3
25
|
|
4
26
|
|
@@ -60,7 +82,7 @@
|
|
60
82
|
|
61
83
|
|
62
84
|
|
63
|
-
|
85
|
+
ここが3となります。
|
64
86
|
|
65
87
|
decodeというのを試しましたが、$arrayをphpでダンプしてもnullがかえってきます。
|
66
88
|
|
@@ -69,3 +91,19 @@
|
|
69
91
|
<?php $array = json_decode($response['data']['hairetuList']); ?>
|
70
92
|
|
71
93
|
```
|
94
|
+
|
95
|
+
しかし、上でも書いた通りjsでconsole.logにて表示させた場合、objとして取得できていました。
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
jsで変数に格納し、それをphpで表示させればやりたいことができる想定です。
|
100
|
+
|
101
|
+
しかし、jsで格納のやり方がわからず。
|
102
|
+
|
103
|
+
教えていただけますか?
|
104
|
+
|
105
|
+
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
※質問の仕方を改めるため途中で編集しました。ご迷惑おかけしました。今一度ご教授お願いします。
|
5
cakeを使っていることを明示
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
cakephp2
|
2
|
+
|
3
|
+
|
4
|
+
|
1
5
|
連想配列をjson_encodeし、javascriptの中でobjとして取得できました。
|
2
6
|
|
3
7
|
これをphpで再度変数に入っている連想配列として取得?するにはどうすればいいですか?
|
@@ -10,7 +14,7 @@
|
|
10
14
|
|
11
15
|
type: 'GET',
|
12
16
|
|
13
|
-
url: '対象
|
17
|
+
url: '対象actionへ渡す(ajax_id)',
|
14
18
|
|
15
19
|
data: {
|
16
20
|
|
@@ -22,9 +26,11 @@
|
|
22
26
|
|
23
27
|
```
|
24
28
|
|
25
|
-
↓
|
29
|
+
↓ これをcontrollerに渡し、encodeします。
|
26
30
|
|
27
|
-
```
|
31
|
+
```
|
32
|
+
|
33
|
+
public function ajax_id {
|
28
34
|
|
29
35
|
$data = array();
|
30
36
|
|
@@ -48,6 +54,8 @@
|
|
48
54
|
|
49
55
|
echo json_encode($response);
|
50
56
|
|
57
|
+
}
|
58
|
+
|
51
59
|
```
|
52
60
|
|
53
61
|
|
4
.
test
CHANGED
File without changes
|
test
CHANGED
@@ -24,7 +24,7 @@
|
|
24
24
|
|
25
25
|
↓
|
26
26
|
|
27
|
-
```
|
27
|
+
```encode
|
28
28
|
|
29
29
|
$data = array();
|
30
30
|
|
3
質問文を編集
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,7 +2,49 @@
|
|
2
2
|
|
3
3
|
これをphpで再度変数に入っている連想配列として取得?するにはどうすればいいですか?
|
4
4
|
|
5
|
-
```
|
5
|
+
```ajax
|
6
|
+
|
7
|
+
var id = $(this).val();//指定のid
|
8
|
+
|
9
|
+
$.ajax({
|
10
|
+
|
11
|
+
type: 'GET',
|
12
|
+
|
13
|
+
url: '対象url',
|
14
|
+
|
15
|
+
data: {
|
16
|
+
|
17
|
+
idd: id,
|
18
|
+
|
19
|
+
},
|
20
|
+
|
21
|
+
dataType: 'json',
|
22
|
+
|
23
|
+
```
|
24
|
+
|
25
|
+
↓
|
26
|
+
|
27
|
+
```取得 → encode(controller)
|
28
|
+
|
29
|
+
$data = array();
|
30
|
+
|
31
|
+
$response = array(
|
32
|
+
|
33
|
+
'data' => array()
|
34
|
+
|
35
|
+
);
|
36
|
+
|
37
|
+
$id = $this->request->query['id'];
|
38
|
+
|
39
|
+
|
40
|
+
|
41
|
+
//$idを基準にfindでデータ取得(連想配列)
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
$response['data']['hairetuList'] = $hairetuList;
|
46
|
+
|
47
|
+
}
|
6
48
|
|
7
49
|
echo json_encode($response);
|
8
50
|
|
@@ -10,18 +52,12 @@
|
|
10
52
|
|
11
53
|
|
12
54
|
|
55
|
+
|
56
|
+
|
13
57
|
decodeというのを試しましたが、$arrayをphpでダンプしてもnullがかえってきます。
|
14
58
|
|
15
|
-
```
|
59
|
+
```php
|
16
60
|
|
17
|
-
$array = json_decode(response
|
61
|
+
<?php $array = json_decode($response['data']['hairetuList']); ?>
|
18
62
|
|
19
63
|
```
|
20
|
-
|
21
|
-
phpでも試してみましたが、だめでした。
|
22
|
-
|
23
|
-
```ここに言語を入力
|
24
|
-
|
25
|
-
<?php $array = json_decode($response); ?>
|
26
|
-
|
27
|
-
```
|
2
追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,6 +1,12 @@
|
|
1
1
|
連想配列をjson_encodeし、javascriptの中でobjとして取得できました。
|
2
2
|
|
3
3
|
これをphpで再度変数に入っている連想配列として取得?するにはどうすればいいですか?
|
4
|
+
|
5
|
+
```encode
|
6
|
+
|
7
|
+
echo json_encode($response);
|
8
|
+
|
9
|
+
```
|
4
10
|
|
5
11
|
|
6
12
|
|
@@ -11,3 +17,11 @@
|
|
11
17
|
$array = json_decode(response.data.rensouList);
|
12
18
|
|
13
19
|
```
|
20
|
+
|
21
|
+
phpでも試してみましたが、だめでした。
|
22
|
+
|
23
|
+
```ここに言語を入力
|
24
|
+
|
25
|
+
<?php $array = json_decode($response); ?>
|
26
|
+
|
27
|
+
```
|
1
変更
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,6 +8,6 @@
|
|
8
8
|
|
9
9
|
```js
|
10
10
|
|
11
|
-
$array = json_decode(
|
11
|
+
$array = json_decode(response.data.rensouList);
|
12
12
|
|
13
13
|
```
|