他にも似たような質問があるのですが、連動するプルダウンリストを作成しています。
二次元配列を使ったものはあるのですが、三次元以上の多次元配列を使ったものがないので質問させて頂きました。
下記のような内容でエリアと都道府県を選択できるプルダウンリストがあります。
これをJavascriptの三次元配列を利用してさらに市町村を選択できるリストを作成したいと思っています。
それぞれのプルダウンリストは、エリアの中でAを選択するとAのエリアの中にある都道府県が選択でき、都道府県を選択するとそれに該当する市町村が選択できるように連動するように作成したいと思っています。
ご指導お願いします。
<html>
<head>
<script language="javascript"><!--
function hoge(area){
var t=new Array();//optionの項目(text)
var v=new Array();//optionのvalue
if(area=='A'){
t[0]='A-1';v[0]='A1';
t[1]='A-2';v[1]='A2';
t[2]='A-3';v[2]='A3';
t[3]='A-4';v[3]='A4';
t[4]='A-5';v[4]='A5';
}
else if(area=='B'){
t[0]='B-1';v[0]='B1';
t[1]='B-2';v[1]='B2';
}
else if(area=='C'){
t[0]='C-1';v[0]='C1';
t[1]='C-2';v[1]='C2';
t[2]='C-3';v[2]='C3';
}
else if(area=='D'){
t[0]='D-1';v[0]='D1';
t[1]='D-2 hogehoge';v[0]='D2';
}
else{t[0]='都道府県'}
var obj=document.frm.s2.options;
obj.length=0;
for(i=0;i<t.length;i++){
obj[i]=new Option(t[i]);
obj[i].value=v[i];
}
obj[0].selected=true;
if(document.layers){window.resizeBy(-10,-10);window.resizeBy(10,10)}
}
//--></script>
</head>
<body>
<form name='frm'>
<select onChange="hoge(this.options[this.options.selectedIndex].value)">
<option value=''>エリア名</option>
<option value='A'>エリアA</option>
<option value='B'>エリアB</option>
<option value='C'>エリアC</option>
<option value='D'>エリアD</option>
</select>
<select name='s2' size=1 onChange="alert(this.options[this.options.selectedIndex].value)">
<option>都道府県</option>
</select>
</form>
</body>
</html>
No.2ベストアンサー
- 回答日時:
#1です。
body部分は極力元のままで動くサンプルを書いてみました。
<html>
<head>
<title></title>
<script type="text/javascript">
function sampleSub(SEL,LIST){
while(SEL.options[1])SEL.remove(1);
if(LIST) {
for(var i=0;LIST[i];i++) {
var OPT = document.createElement('option');
OPT.value = LIST[i];
OPT.appendChild(document.createTextNode(LIST[i]));
SEL.appendChild(OPT);
}
}
SEL.selectedIndex = 0;
if(SEL.onchange)SEL.onchange(SEL,null);
}
function sample1(SEL){
var LIST = new Array();
LIST['関東']=['東京都','神奈川県'];
LIST['近畿']=['大阪府','兵庫県'];
sampleSub(
document.getElementsByName('s2')[0],
LIST[SEL.options[SEL.selectedIndex].value]);
}
function sample2(SEL){
var LIST = new Array();
LIST['東京都']=['品川区','渋谷区'];
LIST['神奈川県']=['横浜市','川崎市'];
LIST['大阪府']=['大阪市','吹田市'];
LIST['兵庫県']=['明石市','尼崎市'];
sampleSub(
document.getElementsByName('s3')[0],
LIST[SEL.options[SEL.selectedIndex].value]);
}
</script>
</head>
<body>
<form name='frm'>
<select onChange="sample1(this)">
<option value=''>エリア名</option>
<option value='関東'>関東</option>
<option value='近畿'>近畿</option>
</select>
<select name='s2' size=1 onChange="sample2(this)">
<option>都道府県</option>
</select>
</form>
<select name='s3' size=1">
<option>市町村</option>
</select>
</form>
</body>
</html>
No.3
- 回答日時:
#1です。
#2のサンプルは</form>が途中に一つ余計にありますので削除してください。
(動作しか確認しなかった。)
No.1
- 回答日時:
こちらのライブラリを使うと楽かも。
この回答への補足
steel_grayさん、ありがとうございます。
このライブラリを使うと確かに楽に出来るのですが、これをCGIに応用したいのでHTMLのBODYのタグの中にはあまり値を書き込みたくないと考えています。
他にいい方法をご存知であれば、教えて頂きたいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 以前の質問だと、どの条件でも配列が表示されてしまいます。 1 2022/07/09 11:40
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- JavaScript JavascriptからSQLへ繋ぎ方が分からない 3 2022/07/07 00:27
- JavaScript console.logがどうしても2つ機能しないのでアドバイスをくださいお願いします 2 2022/07/07 22:13
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- JavaScript 2段階プルダウンで1段階目の選択を終えた後に選択ボックスを見えなくしたい 2 2022/07/05 21:58
- JavaScript 中百舌鳥駅と深井駅を入れ替えて選択しても同じ挙動にしたいです。 2 2022/06/24 18:45
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavascriptからSQLへ繋ぎ方が分...
-
プルダウン選択を変更すると、...
-
1度きりではなく、繰り返し、挙...
-
[JavaScript]ボタンを押下する...
-
return trueとreturn falseの用...
-
BackSpaceしたい(QNo.2734284の...
-
オブジェクト配列
-
チェックボックスで合計値を計...
-
onchange等のイベントハンドラ...
-
Acrobat Java Scriptについて教...
-
setIntervalの間隔を途中で変更...
-
jQuery テキストボックス読み取...
-
checkboxをクリックしてリロー...
-
チェックボックスのON/OFFに応...
-
【診断テストの作り方】結果に...
-
テーブルの行数を可変長にした...
-
<JavaScript>tableタグを入力不...
-
JavaScriptを用いてテキストボ...
-
テーブル内のチェックボックス...
-
selectboxのoptionタグのvalue...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プルダウン選択を変更すると、...
-
selectを変更不可にしたい
-
javascriptでセレクトボックス...
-
全てのselect要素をデフォルト...
-
Selectボックスの一覧表示方法
-
リストボックス内の重複したも...
-
プルダウンの値によって活性・...
-
VBScriptでHTMLのセレクトボッ...
-
JavaScriptで<select>の<option...
-
セレクトボックスで配列を呼び...
-
ラジオボタンとプルダウンを連...
-
selectを使った計算
-
select要素のvalueを配列で取得...
-
<input>の選択肢をプルダウンメ...
-
javascriptでoptionタグを削除...
-
今日の日付を自動的にセレクト...
-
検索窓とプルダウンメニュー機...
-
【javascript】連想配列からセ...
-
selectボックスの選択結果を変...
-
同じ名前のセレクトがある場合...
おすすめ情報