- ベストアンサー
子ども向けの階層化されたデータベースへのアクセス方法をドロップダウンリストで実現したい
- 子どもでも簡単にホームページのデータベースにアクセスできる方法を探しています。ドロップダウンリストを使って階層化されたデータベースの項目を選ぶと、自動的にURLアドレスが生成され、リンク先のページにアクセスできる仕組みを作りたいです。
- 具体的な例として、学年、クラス、データの3つの階層で構成されるデータベースがあります。ドロップダウンリストを使ってそれぞれの階層を選ぶと、URLアドレスが作成されます。例えば、学年を1年、クラスを2組、データを3と選んだ場合、以下のようなURLアドレスが生成されます:http://www.example.com/1nen/2kumi/3
- このような仕組みを実現するためには、ドロップダウンリストを使って選択された値を取得し、それを元にURLアドレスを生成するプログラムを作成する必要があります。また、アドレス生成の途中過程の表示は必要ありません。子どもでも簡単に操作できるように、ユーザインターフェースのデザインも考慮する必要があります。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
HTMLとJavaScriptの話ですかね? それなら <form action="http://www.aa.bb.jp/"> [学年]<select> <option value="1nen">1年</option> <option value="2nen">2年</option> <option value="3nen">3年</option> </select> [クラス]<select> <option value="1kumi">1組</option> <option value="2kumi">2組</option> <option value="3kumi">3組</option> </select> [データ]<select> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> <input type="submit" value="[Go]"> </form> このようなフォームをbody内に作り <script type="text/javascript"> window.onload = function(){ document.forms[0].elements[3].onsubmit = function(){ var e = document.forms[0].elements; for(var i=0;i<e.length;i++){ var url = document.forms[0].action; if(e[i].type != "submit"&&i != 2){ url += e[i].value + "/"; }else if(e[i].type != "submit"&&i == 2){ url += e[i].value; } window.location = url; } } </script> このようなJavaScriptをhead内に入れれば良いじゃないかと思います。 動作未確認。 何をやろうとしているかはDOMやDOMのプロパティを調べてください。 検索すれば沢山情報は得られます。 JavaScriptに付いてはこちらで調べられます。 http://developer.mozilla.org/ja/docs/Core_JavaScript_1.5_Reference
お礼
kk273g906様 こんばんは。早々にお返事有り難う御座います。 javascriptを初めて勉強しますので、とても困惑しています。 kk273g906様にお示し頂いたsampleを早々に試してみようと思います。 当然の様にjavascriptの部分が複雑ですので、様々なfaq等を見ながら、 読み解いて行こうと思います。 今日、下にありますようなscriptを作ってみました。 見かけ上は、目的のごとく、ドロップダウンリストでURLを作り出して行くのですが、最後にできあがるURLの一部と前置文字列(http://www.aa.bb.jp/)を足し合わせることができません。 これでは全く見当外れになってしまっているでしょうか。 <script language="javascript"> <!-- function fun_set(set_name){ txtArea.value += eval(set_name).value; } //--> </script> <SELECT name="gakunen" size="1" onChange="javascript:fun_set(gakunen);"> <OPTION value="1nen/" >1年</OPTION> <OPTION value="2nen/">2年</OPTION> <OPTION value="3nen/">3年</OPTION> </SELECT> <SELECT name="kumi" size="1" onChange="javascript:fun_set(kumi);"> <OPTION value="1kumi/">1組</OPTION> <OPTION value="2kumi/">2組</OPTION> <OPTION value="3kumi/">3組</OPTION> </SELECT> <SELECT name="data" size="1" onChange="javascript:fun_set(data);"> <option value="a.jpg">a</option> <option value="b.jpg">b</option> <option value="c.jpg">c</option> </SELECT> <BR> <TEXTAREA name="txtArea" rows="5" cols="50">
補足
kk273g906様 お世話になります。今日も色々試しましたところ、 select文で得られた値をURLとして足し合わせることで目的が達成できました。ありがとうございました。 これからもよろしくお願いいたします。 概略は下記のようなものです。 <form name="form"> <font color="#ff0080" size="5">gakunen:</font> </font> Introductory_remarks = "http://wwwaa.bb..jp/" <select name="gakunen"> <option value="01">1年</option> <option value="02">2年</option> <option value="03">3年</option> </select> <font color="#ff0080" size="5">classs:</font> </font> <select name="Hiniti"> <option value="01">1組</option> <option value="02">2組</option> <option value="03">3組</option> </select> <font color="#ff0080" size="5">dat:</font> </font> <select name="Hiniti"> <option value="a.jpg">1</option> <option value="b.jpg">2</option> <option value="c.jpg">3</option> </select> <script language="javascript"> <!-- gakunenDir = document.form.gakunen.value; classDir = document.form.class.value; datDir = document.form.dat.value; URL = document.form.Introductory_remarks.value + "/" + gakunenDir + "/" + classDir + "/"+ datDir ; //--> </script>