初めて投稿します。
ずぶの素人で専門用語も解りません。関数なども想像の範囲でやりくりしております。
php,MySqlで会計帳簿を作っています。不便でも動くものは出来るのですが、
今まで、入力画面1で(勘定科目ごとに違う補助科目以外の)各項目を選択または記入し
入力画面2で勘定科目に属する補助科目を選択して、
確認画面3で決定、という流れでしたが、
入力画面1で勘定科目を選ぶと、それに連動する補助科目を選択・記入すれば、
確認画面2という流れになるため事務効率が上がるので改良中です。
いろいろの所からの寄せ集めで、以下のものを作りましたが、メインメニューの選択が預金・消耗品共、次のページのサブメニューは「文旦」になります。何処がおかしいのでしょうか?
下記のコードではデータベースからデータを読み出してselect文を作るところは省いてあります。
元のコードは、javascriptも
document.addEventListener('DOMContentLoaded', function() {
var allSubBoxes = document.getElementsByClassName("hojo");
以下の一連のものを同じページに2個書いてあります。が、両方が干渉したようには見えません。
hojo、pulldownset、kanjo、はそれぞれhojo2、pulldownset2、kanjo2、としてあります。
以上宜しくご指導下さい。
java
1<script type="text/javascript">
2document.addEventListener('DOMContentLoaded', function() {
3 var allSubBoxes = document.getElementsByClassName("hojo");
4 for( var i=0 ; i<allSubBoxes.length ; i++) {
5 allSubBoxes[i].style.display = 'none';
6 }
7 var mainBoxes = document.getElementsByClassName('pulldownset');
8 for( var i=0 ; i<mainBoxes.length ; i++) {
9 var mainSelect = mainBoxes[i].getElementsByClassName("kanjo");
10 mainSelect[0].onchange = function () {
11 var subBox = this.parentNode.getElementsByClassName("hojo");
12 for( var j=0 ; j<subBox.length ; j++) {
13 subBox[j].style.display = 'none';
14 }
15 if( this.value ) {
16 var targetSub = document.getElementById( this.value );
17 targetSub.style.display = 'inline';
18 }
19 }
20
21 }
22});
23</script>
php
1<form action=next.php method=POST>
2<div class="pulldownset">
3<select class="kanjo" name=kanjo>
4<option value=預金>預金</option>
5<option value=消耗品>消耗品</option>
6<option value=売上>売上</option>
7</select>
8
9<select id="預金" class="hojo" name=hojo>
10<option value="A銀行">A銀行</option>
11<option value="B銀行">B銀行</option>
12</select>
13<select id="消耗品" class="hojo" name=hojo>
14<option value="FF">FF</option>
15<option value="ボトル">ボトル</option></select>
16<select id="売上" class="hojo" name=hojo>
17<option value="文旦">文旦</option>
18<option value="小夏">小夏</option></select>
19</div>
20<input type=submit value=次へ></form>
javaはありません。
next.php
php
1<?php
2 $kanjo=$_POST['kanjo']; $hojo=$_POST['hojo'];
3print <<<EOF
4 <table><tr><form action=kimari.php method=POST>
5<TD bgcolor=$bgc2 align=center><input type=hidden name=kanjo value=$kanjo>$kanjo</TD> </TR>
6<TR> <TD bgcolor=$bgc2 align=center> <input type=hidden name=hojo value=$hojo>$hojo </TD></TR></table>
7<input type=submit value=確定> <form>
8EOF;
9?>
以下のように書き換えましたが、動かなくなりました。
php
1<?php
2
3print <<<EOF
4<form action=next.php method=POST>
5<div class="pulldownset">
6<TD bgcolor=$bgc2 align=center rowspan=2><div class="pulldownset">
7<select class="kanjo" name="kanjo">
8EOF;
9$selected=[];
10$list_kanjo=["yokin","shomohin","uriage"];
11array_walk($list_kanjo,function($i) use(&$selected){
12 $selected["kanjo"][$i]="";
13});
14$val_kanjo=filter_input(INPUT_POST,"kanjo");
15if(in_array($val_kanjo,$list_kanjo)){
16 $selected["kanjo"][$val_kanjo]=" selected";
17}
18print <<<EOF
19<option value=yokin$selected['kanjo']['yokin']>預金</option>
20<option value=shomohin$selected['kanjo']['shomohin']>消耗品</option>
21<option value=uriage$selected['kanjo']['uriage']>売上</option>
22</select>
23
24<select id="預金" class="hojo" name=hojo>
25<option value="A銀行">A銀行</option>
26<option value="B銀行">B銀行</option>
27</select>
28<select id="消耗品" class="hojo" name=hojo>
29<option value="FF">FF</option>
30<option value="ボトル">ボトル</option></select>
31<select id="売上" class="hojo" name=hojo>
32<option value="文旦">文旦</option>
33<option value="小夏">小夏</option></select>
34</div>
35<input type=submit value=次へ></form>
36EOF;
37?>
↓この部分を
php
1<select id="預金" class="hojo" name=hojo>
2<option value="A銀行">A銀行</option>
3<option value="B銀行">B銀行</option>
4</select>
5<select id="消耗品" class="hojo" name=hojo>
6<option value="FF">FF</option>
7<option value="ボトル">ボトル</option></select>
8<select id="売上" class="hojo" name=hojo>
9<option value="文旦">文旦</option>
10<option value="小夏">小夏</option></select>
以下のようにするなら私でもできると思います。
php
1<select id="預金" class="hojo" name=hojo[1]>
2<option value="A銀行">A銀行</option>
3<option value="B銀行">B銀行</option>
4</select>
5<select id="消耗品" class="hojo" name=hojo[2]>
6<option value="FF">FF</option>
7<option value="ボトル">ボトル</option></select>
8<select id="売上" class="hojo" name=hojo[3]>
9<option value="文旦">文旦</option>
10<option value="小夏">小夏</option></select>