推しミネラルウォーターはありますか?

過去記事にあった下記のプルダウンを使用させて頂いております。
選択できる項目を「くだもの→りんご→●●」ともうひとつ追加
するにはどうしたらよいのでしょうか?
どうぞよろしくお願いします。

<html>
<head>
<script>
<!--
/* データ定義部(ここをDB検索結果から生成) */
var dataMain = new Array(
  new Array("1", "くだもの"),
  new Array("2", "やさい"),
  new Array("3", "さかな")
);
var dataSub = new Array(
  new Array(
    new Array("1", "りんご"),
    new Array("2", "みかん"),
    new Array("3", "いちご")
  ),
  new Array(
    new Array("1", "にんじん"),
    new Array("2", "だいこん"),
    new Array("3", "きゅうり")
  ),
  new Array(
    new Array("1", "さば"),
    new Array("2", "いわし"),
    new Array("3", "さんま")
  )
);
// プルダウンを初期化
function initSel() {
  var selMain = document.forms[0].elements["selMain"];
  // メインのプルダウンを初期化
  setDataToSel(selMain, dataMain);
  // 先頭を選択
  selMain.selectedIndex = 0;
  // 先頭を選択したのと同じ処理
  changeSel();
}
// プルダウンを選択したときの処理
function changeSel() {
  var selMain = document.forms[0].elements["selMain"];
  var selSub = document.forms[0].elements["selSub"];
  // メインのプルダウンの選択値によりサブの選択肢データを取得
  var data = dataSub[selMain.selectedIndex];
  // サブのプルダウンの選択肢を入れ換え
  setDataToSel(selSub, data);
}
// データを選択肢にセット
function setDataToSel(sel, data) {
  // 選択肢をいったんクリア
  for(var i = 0 ; i < sel.options.length ; i++) {
   sel.options[i] = null;
  }
  // 新しい選択肢を作る
  for(var i = 0 ; i < data.length ; i++) {
  var dt = data[i];
   sel.options[i] = new Option(dt[1], dt[0]);
  }
}
//-->
</script>
</head>
<body onLoad="initSel()">
 <form>
  <p>
   メイン:
   <select name="selMain" size="1" onChange="changeSel()"></select>
  </p>
  <p>
   サブ:
   <select name="selSub" size="1"></select>
  </p>
 </form>
</body>
</html>

A 回答 (2件)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">


<title>TEST</title>
<body>
<form>
<p>
メイン:
<select name="selMain" size="1" onChange="changeSel()"></select>
</p>
<p>
サブ:
<select name="selSub" size="1" onChange="changeSel2()"></select>
</p>
<p>
さらにサブ:
<select name="selSub2" size="1"></select>
</p>
</form>
</body>

<script type="text/javascript">
var dataMain = [ [ "1", "くだもの"],[ "2", "やさい"],[ "3", "さかな"]];
var dataSub = new Array(
new Array(
new Array("1", "りんご"),
new Array("2", "みかん"),
new Array("3", "いちご")
),
new Array(
new Array("1", "にんじん"),
new Array("2", "だいこん"),
new Array("3", "きゅうり")
),
new Array(
new Array("1", "さば"),
new Array("2", "いわし"),
new Array("3", "さんま")
)
);
var dataSub2 = [
[
[["1", "ふじ"],["2", "むつ"],["3", "つがる"]],
[["1", "夏みかん"],["2", "きんかん"],["3", "ぽんかん"]],
[["1", "栃おとめ"],["2", "くさりかけ"],["3", "白カビつき"]]
],
[
[["1", "1号"],["2", "赤2号"],["3", "やっぱりくさりかけ"]],
[["1", "桜島だいこん"],["2", "かいわれ"],["3", "おでん用"]],
[["1", "漬物用"],["2", "わかんねぇ~"],["3", "あっはっは"]]
],
[
[["1", "缶詰"],["2", "しめ鯖"],["3", "味噌似"]],
[["1", "大きめ"],["2", "ちっちぇ~"],["3", "あぁ~ボキャブラリーない!"]],
[["1", "のまんま"],["2", "からくり"],["3", "・・・。"]]
]
];

var selMain = document.forms[0].elements["selMain"];
var selSub = document.forms[0].elements["selSub"];
var selSub2 = document.forms[0].elements["selSub2"];
selMain.selectedIndex = 0;
setDataToSel(selMain, dataMain);
changeSel();

function changeSel() {
setDataToSel(selSub, dataSub[selMain.selectedIndex]);
setDataToSel(selSub2, dataSub2[selMain.selectedIndex][ selSub.selectedIndex]);
}
function changeSel2() {
setDataToSel(selSub2, dataSub2[selMain.selectedIndex][ selSub.selectedIndex]);
}

function setDataToSel(sel, data) {
var i;
for(i = 0 ; i < sel.options.length ;) sel.options[i++] = null;
for(i = 0 ; i < data.length ; i++) sel.options[i] = new Option(data[i][1], data[i][0]);
}
</script>
    • good
    • 0
この回答へのお礼

早速ご回答頂きありがとうございます。

選択できるプルダウンをもうひとつ追加する場合、どのようにコードを
書いたらよいのでしょうか?

もし差し支え無ければお教え下さいますようお願い致します。

お礼日時:2008/12/26 18:36

4つ手前にヒント有り。

    • good
    • 0
この回答へのお礼

ありがとうございました。
できれば上記のスクリプトで実現したのですが難しいでしょうか?

お礼日時:2008/12/24 16:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!