初めて投稿します。
ずぶの素人で専門用語も解りません。関数なども想像の範囲でやりくりしております。
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>
回答3件
あなたの回答
tips
プレビュー