回答編集履歴

2

追記

2017/08/09 03:38

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -102,40 +102,110 @@
102
102
 
103
103
  ```
104
104
 
105
-
106
-
107
105
  # 追記
108
106
 
109
- php側処理
107
+ 念の為hojo引き継ぎも追記しておきます
108
+
109
+
110
110
 
111
111
  ```PHP
112
112
 
113
113
  $selected=[];
114
114
 
115
+ $list=[
116
+
115
- $list_kanjo=["yokin","shomohin","uriage"];
117
+ "kanjo"=>["yokin","shomohin","uriage"],
116
-
117
- array_walk($list_kanjo,function($i) use(&$selected){
118
+
118
-
119
- $selected["kanjo"][$i]="";
119
+ "hojo"=>["A銀行","B銀行","FF","ボトル","文旦","小夏"],
120
-
120
+
121
- });
121
+ ];
122
+
122
-
123
+ $vals=[
124
+
123
- $val_kanjo=filter_input(INPUT_POST,"kanjo");
125
+ "kanjo"=>filter_input(INPUT_POST,"kanjo"),
126
+
124
-
127
+ "hojo"=>filter_input(INPUT_POST,"hojo"),
128
+
129
+ ];
130
+
125
- if(in_array($val_kanjo,$list_kanjo)){
131
+ foreach($list as $key=>$arr){
132
+
126
-
133
+ foreach($arr as $val){
134
+
127
- $selected["kanjo"][$val_kanjo]=" selected";
135
+ $selected[$key][$val]=($val==$vals[$key]?" selected":"");
136
+
137
+ }
128
138
 
129
139
  }
130
140
 
131
141
  ```
132
142
 
143
+ javascriptでhojoの送るものを選別
144
+
145
+ ```javascript
146
+
147
+ NodeList.prototype.hide=function(){
148
+
149
+ Array.prototype.map.call(this,function(i){
150
+
151
+ i.style.display = 'none';
152
+
153
+ i.disabled = true;
154
+
155
+ });
156
+
157
+ };
158
+
159
+ HTMLElement.prototype.show=function(){
160
+
161
+ this.style.display = 'inline';
162
+
163
+ this.disabled = false;
164
+
165
+ };
166
+
167
+ window.onload=function(){
168
+
169
+ document.querySelector(".kanjo").addEventListener('change',function(e){
170
+
171
+ var p=e.target.parentNode;
172
+
173
+ p.querySelectorAll(".hojo").hide();
174
+
175
+ p.querySelector("#"+e.target.value).show();
176
+
177
+ });
178
+
179
+ if(document.createEvent){
180
+
181
+ var e=document.createEvent('UIEvents');
182
+
183
+ e.initEvent("change",true,true);
184
+
185
+ }else{
186
+
187
+ var e=new Event("change");
188
+
189
+ }
190
+
191
+ document.querySelector(".kanjo").dispatchEvent(e);
192
+
193
+ }
194
+
195
+
196
+
197
+ ```
198
+
133
- 上記を設定した上でkanjoのあたりのHTML部分を以下のようにしてください
199
+ 上記を設定した上でHTML部分も調整
134
200
 
135
201
 
136
202
 
137
203
  ```HTML
138
204
 
205
+ <form method="POST">
206
+
207
+ <div class="pulldownset">
208
+
139
209
  <select class="kanjo" name="kanjo">
140
210
 
141
211
  <option value="yokin"<?PHP print $selected["kanjo"]["yokin"];?>>預金</option>
@@ -146,4 +216,36 @@
146
216
 
147
217
  </select>
148
218
 
219
+
220
+
221
+ <select id="yokin" class="hojo" name="hojo">
222
+
223
+ <option value="A銀行"<?PHP print $selected["hojo"]["A銀行"];?>>A銀行</option>
224
+
225
+ <option value="B銀行"<?PHP print $selected["hojo"]["B銀行"];?>>B銀行</option>
226
+
227
+ </select>
228
+
229
+ <select id="shomohin" class="hojo" name="hojo">
230
+
231
+ <option value="FF"<?PHP print $selected["hojo"]["FF"];?>>FF</option>
232
+
233
+ <option value="ボトル"<?PHP print $selected["hojo"]["ボトル"];?>>ボトル</option>
234
+
235
+ </select>
236
+
237
+ <select id="uriage" class="hojo" name="hojo">
238
+
239
+ <option value="文旦"<?PHP print $selected["hojo"]["文旦"];?>>文旦</option>
240
+
241
+ <option value="小夏"<?PHP print $selected["hojo"]["小夏"];?>>小夏</option></select>
242
+
243
+ </div>
244
+
245
+ <input type=submit value=次へ></form>
246
+
149
- ```
247
+ ```
248
+
249
+
250
+
251
+

1

追記

2017/08/09 03:37

投稿

yambejp
yambejp

スコア114843

test CHANGED
@@ -101,3 +101,49 @@
101
101
  <input type=submit value=次へ></form>
102
102
 
103
103
  ```
104
+
105
+
106
+
107
+ # 追記
108
+
109
+ php側の処理
110
+
111
+ ```PHP
112
+
113
+ $selected=[];
114
+
115
+ $list_kanjo=["yokin","shomohin","uriage"];
116
+
117
+ array_walk($list_kanjo,function($i) use(&$selected){
118
+
119
+ $selected["kanjo"][$i]="";
120
+
121
+ });
122
+
123
+ $val_kanjo=filter_input(INPUT_POST,"kanjo");
124
+
125
+ if(in_array($val_kanjo,$list_kanjo)){
126
+
127
+ $selected["kanjo"][$val_kanjo]=" selected";
128
+
129
+ }
130
+
131
+ ```
132
+
133
+ 上記を設定した上でkanjoのあたりのHTML部分を以下のようにしてください
134
+
135
+
136
+
137
+ ```HTML
138
+
139
+ <select class="kanjo" name="kanjo">
140
+
141
+ <option value="yokin"<?PHP print $selected["kanjo"]["yokin"];?>>預金</option>
142
+
143
+ <option value="shomohin"<?PHP print $selected["kanjo"]["shomohin"];?>>消耗品</option>
144
+
145
+ <option value="uriage"<?PHP print $selected["kanjo"]["uriage"];?>>売上</option>
146
+
147
+ </select>
148
+
149
+ ```