- 締切済み
複数ファイルで共通のセレクトメニューを動作させるためには?(ソース付き)
いつも勉強させていただいております。今回は質問をさせていただけないでしょうか。 A.html、B.htmlの両方のファイルの同じ内容のセレクトメニューを 作っています。 A.htmlを起動するとメニューにA.htmlが B.htmlを起動するとメニューにB.htmlを表示したいと思っています。 いろいろな、サイトを見ると下記で問題ないように思いますが動作しません。 何か問題があるのでしょうか? IE/Firefoxで動作させていと思っています。 <body> <FORM> <SELECT onchange="location.href=this.options[this.selectedIndex].value"> <OPTION value="A.html">A.html</OPTION> <OPTION value="B.html">B.html</OPTION> </SELECT> </FORM> </body> それでは、よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- koke29
- ベストアンサー率58% (114/196)
あー なるほどー 私、javascriptはあんまりわからないので とりあえずPHPでの方法を書いてみますね <? $select = $_REQUEST[select]; $sel[$select] = "selected"; ?> <FORM> <SELECT name="select" onchange="location.href=this.options[this.selectedIndex].value; submit();"> <OPTION value="A.html" <? print $sel['A.html'] ?> >A.html</OPTION> <OPTION value="B.html" <? print $sel['B.html'] ?> >B.html</OPTION> </SELECT> </FORM> こういう風にすると開いたページの方にselectedが付きます ただ、optionのvalueとそのあとの<?~ っていうやつは全部手打ちに するので、200ページ分のリストをガーっと一回作らなきゃならんです (一個作ればあとはコピペでいけますが) javascriptの方がもしかしたら簡単に出来るかもしれないので もう少し詳しくやりたいことを書いて、javascript板で質問してみるのも いいかもしれませんよー うまくいくといいですねー
- koke29
- ベストアンサー率58% (114/196)
あれ??AにもBにも同じフォームが入ってるんですよね?? それならA.htmlは <SELECT onchange="location.href=this.options[this.selectedIndex].value"> <OPTION value="A.html" selected>A.html</OPTION> ←こっちにselected <OPTION value="B.html">B.html</OPTION> </SELECT> B.htmlは <SELECT onchange="location.href=this.options[this.selectedIndex].value"> <OPTION value="A.html">A.html</OPTION> <OPTION value="B.html" selected>B.html</OPTION> ←こっちにselected </SELECT> でいいんじゃないですか?? 単純なことなのに深読みしすぎてしまいましたが、こういうことですよね?
- koke29
- ベストアンサー率58% (114/196)
開いているページの方の<OPTION>にselectedを入れたいってことでしょうか (Aが開いているときは Aにselected、BならBに) そうならちょっと長くなりそうなので後でレス入れます 今すぐはちょっとムリなので…スミマセン
補足
> selectedを入れたいってことでしょうか はい、その通りです。 <FORM></FORM>の部分を全く同じにして、IE/Firefoxで動作できる ようにしたいと思っているのです。 > そうならちょっと長くなりそうなので後でレス入れます > 今すぐはちょっとムリなので…スミマセン 誠に申し訳ございません。 期待してお待ちしておりますので、よろしくお願いいたします。
- koke29
- ベストアンサー率58% (114/196)
試しにFirefox・IE7で試してみたら(たぶん)問題なく動きましたよー 記載のコードを実行→プルダウン表示→AorB選択で対象ファイル表示 という感じになってました(希望の動作ですよね?) なので、考えられる理由は記載のコード以外ってことになるでしょうねー 質問者さんのブラウザがjavascript無効になってるとか?? (二つのブラウザでどっちもって考えにくいんですけどねぇ) または、記載のコードの前後に何か余計なのが入っててそっちの絡みで 動かないとか… もし、実際使うファイルに記載のコード以外が入ってるなら 一回コメントアウトするとか、別ファイルに移植して該当のコードだけで 試してみるのはいかがでしょう こういうのの原因究明って大抵が消去法になってしまうと思うので 時間はかかるかもしれませんが、少なくとも記載のコードは問題ない っていう検証は私の環境で証明されたので、別の原因をあたってみましょー 頑張って下さい
補足
レスありがとうございます。 ソースは、下記だけで、B.htmlに保存しています。 B.htmlを起動すると、ボックスにA.htmlと出ます。 これを、B.htmlにしたいと思っているのです。 どのようにすれば良いか教えていただいてよろしいでしょうか? <html> <body> <FORM> <SELECT onchange="location.href=this.options[this.selectedIndex].value"> <OPTION value="A.html">A.html</OPTION> <OPTION value="B.html">B.html</OPTION> </SELECT> </FORM> </body> </html>
補足
すいません。 私の書き方が悪かったかもしれません。 A.html、B.htmlのファイルの内容を全く同じにしたいのです。 実は、このファイルが200くらいあるのです。 その為、1つづつ変更することが現実的にできないのです。 それを踏まえていただければ幸いです。