- 締切済み
コンボボックス(?)を3つ連動させたモノを、Web、Excelで作る方法は?
『OKWeb』の質問をする際に、『カテゴリーを選択する』で大分類、中分類、小分類の選択ができるようになっていて、大分類の選択にヒモ付けされた中分類(中分類→小分類も同じ)が選択できるようになっています。 このように3つを連動させて選択させるのは、どのようにしたら作れるのでしょうか? ネットで調べても方法が見つかりませんでした。 (1) Webで上記を作る場合(ホームページビルダーは持っていますが、出来そうにありません) (2) Excelで作る場合(コンボボックスというのを使うのだと思いますが・・・ ちなみにExcel2000です。) ※ちなみにパソコンはあまり得手ではありません。。。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- yambejp
- ベストアンサー率51% (3827/7415)
WEBの場合プログラムでやります。 (エクセルもそうですが、今回は省略) PHPやCGIという言葉はご存知ですか? 普通はそれでやります。聞いたことなければ すぐには難しいと思うので諦めてください。 別のやり方としてはjavascriptというプログラム でもできます。これはこんな感じでやります。 ソースみてわからなければ、地道に勉強してください。 (参考なのでかなりてを抜いてます) <form> <select id="s1" onChange="changeS1(this)"> <option value="">大分類を選択してね <option value="aaa">大分類aaa <option value="bbb">大分類bbb <option value="ccc">大分類ccc </select> <select id="s2" onChange="alert('省略')"> <option value="">中分類を選択してね </select> <select id="s3"> <option value="">小分類を選択してね </select> </form> <script> function changeS1(num){ var val=num.options[num.selectedIndex].value; var s2=num.form.s2; switch (val){ case "aaa": s2_value="aaa-001\naaa-002\naaa-003".split("\n") s2_text="aaaの1番目\naaaの2番目\naaaの3番目".split("\n") s2.length=s2_value.length+1; for (var i=0 ;i<=s2_value.length -1;i++){ s2.options[i+1].value=s2_value[i]; s2.options[i+1].innerText=s2_text[i]; } break; case "bbb": alert("省略"); break; case "ccc": alert("省略"); break; default: s2.length=1; s2.options[0].select; } } </script>