###前提・実現したいこと
WEBページにてエントリーフォームを作成しております。
base.html(エントリー画面)
base_ck.php(確認画面)
Aプルダウン(都道府県)
Bプルダウン(所属名)
MySQLよりPHPで先にBプルダウンの値を計算しておきます。
Aプルダウンを選択したのち、Aのvalue値をキーとしてBプルダウンの値を計算(javascript)しております。
例)Aプルダウン:北海道(value値:11)
Bプルダウン:北海道倶楽部(value値:1002)
ここまでは問題ないのですが、確認画面から戻る(submit)と、Aプルダウンは”北海道”と表示が残っていますが、Bプルダウンの値が消えて選択もできなくなります。又、Aプルダウンの値そのものはクリア(value値:0)されてしまっております。
今までは運用でごまかしておりましたが(Aプルダウンで一旦違う値を選択し再度選びなおすとBプルダウンが復活する)、
クライアントより修正依頼がきてしまい、値を保持しなければならなくなりました。
PHP・HTMLは何とか書けるのですが、JavaScriptはど素人で、このプログラムもネットから情報を拾い集めて何とかできました。
ご教授いただければ幸いです。
###該当のソースコード
「base.html(エントリー画面)」 <html lang="ja"> <head> <title>テストページ</title> <script type="text/javascript"> <!-- データベースよりJavaScriptにて「所属名」を配列に格納する belong_value = new Array(); belong_text = new Array(); belong_length = new Array(); <?php //ここでBプルダウンの値を計算して配列に格納する。 //データサンプル //belong_value[11] = new Array("0","1001","1002","1003"); //belong_length[11] = 3; //belong_text[11] = new Array("---","北海道","北海道倶楽部","札幌クラブ"); ?> function BelongList(idx){ //選択リストに項目を追加 for(i=0;i<belong_length[idx];i++){ document.form_kojin.belong.length=belong_length[idx]; document.form_kojin.belong.options[i].text = belong_text[idx][i]; document.form_kojin.belong.options[i].value= belong_value[idx][i]; } //選択リストがブランクの場合 if(i==0){ document.form_kojin.belong.length=1; document.form_kojin.belong.options[i].text = "---"; document.form_kojin.belong.options[i].value= 0; } } //--> </script> </head> <body> <div id="wrapper"> <div id="main"> <h1>申込ページ</h1><br /> <?php $action_ck = "https://aaa/base_ck.php"; ?> <h2></h2> <div class="main-frame"> <p><span class="style-indispensable">※必須項目</span></p><br /> <form name="form_kojin" action="<?php echo htmlspecialchars($action_ck, ENT_QUOTES); ?>" method="post"> <table> <tr> <th class="th-style"> <div><span class="style-indispensable">※</span>都道府県</div> </th> <td class="td-style"> <SELECT autofocus size="1" name="branch_name" id="branch_name" onChange="BelongList(this.options[selectedIndex].value);"> <OPTION value="0">---</OPTION> <OPTION value="11">北海道</OPTION> <OPTION value="21">青森県</OPTION> <OPTION value="22">岩手県</OPTION> </SELECT> </td> </tr> <tr> <th class="th-style"> <div><span class="style-indispensable">※</span>所属名</div> </th> <td class="td-style"> <SELECT size="1" name="belong" id="belong"><!-- BelongList関数より自動生成 --> <OPTION value="0">---</OPTION> </SELECT> </td> </tr> </table> <br /><br /> <div> <input name="submit" type="submit" value=" 入力確認画面へ " class="button-05"> </div> </form> </div> </div> </div> </body> </html>
###試したこと
他のQ&Aサイトで教えていただいた以下の内容等を試しましたが、何の反応もありません。
BelongList() 関数を定義した後に
var num = document.form_kojin.branch_name.selectedIndex;
BelongList(document.form_kojin.branch_name.options[num].value);
###補足情報(言語/FW/ツール等のバージョンなど)
より詳細な情報
