CMSを作っており、路線名と駅名のプルダウンを連動させたいと考えています。
路線を選んだら、その路線の駅名を表示させるようにしたいです。
路線と駅名はそれぞれのデータベースがあり、路線idがそれぞれに入っています。
現在のソースを書かせていただきます。
<select name="line1"> <option value="">-----沿線を選択-----</option> <? $recordSet_Li=mysqli_query($conn,"SELECT * FROM line"); while($Li = mysqli_fetch_assoc($recordSet_Li)){ $LINE_NAME=htmlspecialchars($Li['line_name']); $LINE_CD=htmlspecialchars($Li['line_cd']); ?> <option value="<?=$LINE_CD?>"><?=$LINE_NAME?></option> <?}?> </select> <select id="station1"><option value="">-----駅を選択-----</option></select> <script> var array = new Array(); array[''] = new Array({cd:"0", label:"-----駅を選択-----"}); array["11603"] = new Array( {cd:"1160301", label:"大阪"}, {cd:"1160308", label:"甲南山手"}, {cd:"1160309", label:"摂津本山"}, {cd:"1160310", label:"住吉"}, {cd:"1160311", label:"六甲道"} ); array["34001"] = [ {cd:"3400101", label:"大阪梅田"}, {cd:"3400102", label:"中津"}, {cd:"3400111", label:"岡本"}, {cd:"3400112", label:"御影"}, {cd:"3400113", label:"六甲"} ]; document.getElementById('line1').onchange = function(){ station1 = document.getElementById("station1"); station1.options.length = 0 var changedPref = line1.value; for (let i = 0; i < array[changedPref].length; i++) { var op = document.createElement("option"); value = array[changedPref][i] op.value = value.cd; op.text = value.label; station1.appendChild(op); } } </script>
上記のソースは、一旦試しで書いてみたのですが、
ジャバスクリプトの中で、データベースから引っ張ってきたデータを繰り返す
書き方をご教示いただけないでしょうか。
array["路線コード1"] = [
{cd:"駅コード1", label:"駅名1"},
{cd:"駅コード2", label:"駅名2"},
];
array["路線コード2"] = [
{cd:"駅コード1", label:"駅名1"},
{cd:"駅コード2", label:"駅名2"},
];
というふうに繰り返したいです。
(上記のソースでは、駅のデータベースからデータを取得する記述はまだ書いていません)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/12 06:21
2021/12/12 08:30
2021/12/12 08:32
2021/12/12 10:51
2021/12/12 21:52
2021/12/14 10:57