• ベストアンサー

プルダウンメニューからPDF表示

プログラミング、初心者です。 JavaScriptを使って、二つのプルダウンメニューをコンボ(1つ目に選択したメニューの内容で、2つ目を変化)させて、GO!ボタンを押すと2つ目のメニューで指定したPDFを別ウィンドウで表示させるようにしたいです。具体的には、1つ目のメニューで、Aを指定すると2つ目でA-1,A-2,A-3,,,。1つ目のメニューで、Bを指定すると2つ目でB-1,B-2,B-3,,,。というふうにしたいです。その場合どのように記述すればいいのでしょうか? また、2つ目のメニューの選択肢がかなり多くなった場合でも、きちんと表示されるでしょうか? ご回答よろしくお願いしますm(__)M

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.2

#2です。 少しわかってきました。 では、単純に数字(1-53)と記号(A-B,C)の組み合わせでファイル名も 1-A.pdf~53-C.pdf と合成しちゃってかまわないんですね? サンプルです。 <html> <head> <title></title> <script type="text/javascript"> function sample_select(){ var L1 = document.getElementById('UNIT'); var L2 = document.getElementById('QID'); if(! L1.selectedIndex) return; var W0 = L1.options[L1.selectedIndex].value.split(','); while(L2.options[1])L2.remove(1); for(var i=0;i<W0[1];i++){ var OPTION = document.createElement('option'); OPTION.value = W0[0]+'-'+'ABC'.substring(i,i+1)+'.pdf'; OPTION.appendChild(document.createTextNode('ABC'.substring(i,i+1))); L2.appendChild(OPTION); } } function sample_go(){ var L1 = document.getElementById('UNIT'); var L2 = document.getElementById('QID'); if(! L1.selectedIndex || ! L2.selectedIndex) return; //以下、テスト用(本番では次行を有効に、次次行をコメントアウト) //location.href = L2.options[L2.selectedIndex].value; alert('JUMP先:'+L2.options[L2.selectedIndex].value); } </script> </head> <body> <select id="UNIT" onchange="sample_select()"> <option value="">UNIT</option> <option value="1,3">1</option> <option value="2,2">2</option> <option value="3,3">3</option> <!-- 以下 "53,n" まで続く "n"はそのユニットの問題の個数--> </select> <select id="QID"> <option value="">問題</option> </select> <input type="button" value="GO" onclick="sample_go()"> </body> </html>

bad-ama
質問者

お礼

ありがとうございます。きれいにプルダウンメニューが作れました!丁寧なご指導ありがとう御座いますm(__;)m

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

以下、サンプルです。 書かれていない不明瞭な仕様を勝手に解釈したので要望とは違うかもしれませんが。 <html> <head> <title></title> <script type="text/javascript"> function sample_select(){ var L1 = document.getElementById('LIST1'); var SLIST = document.getElementById('SECOND-LIST').getElementsByTagName('select'); for(var i=0;SLIST[i];i++){ SLIST[i].style.display = (SLIST[i].id == L1.options[L1.selectedIndex].value)?'inline':'none'; } } function sample_go(){ var L1 = document.getElementById('LIST1'); var L2 = document.getElementById(L1.options[L1.selectedIndex].value); //以下、テスト用(本番では次行を有効に、次次行をコメントアウト) //location.href = L2.options[L2.selectedIndex].value; alert('JUMP先:'+L2.options[L2.selectedIndex].value); } </script> </head> <body> <select id="LIST1" onchange="sample_select()"> <option value="LIST_A">A</option> <option value="LIST_B">B</option> <option value="LIST_C">C</option> </select> <span id="SECOND-LIST"> <select id="LIST_A"> <option value="a1.pdf">A-1</option> <option value="a2.pdf">A-2</option> <option value="a3.pdf">A-3</option> </select> <select id="LIST_B" style="display:none"> <option value="b1.pdf">B-1</option> <option value="b2.pdf">B-2</option> </select> <select id="LIST_C" style="display:none"> <option value="c1.pdf">C-1</option> <option value="c2.pdf">C-2</option> <option value="c3.pdf">C-3</option> <option value="c4.pdf">C-4</option> </select> </span> <input type="button" value="GO" onclick="sample_go()"> </body> </html>

bad-ama
質問者

お礼

ご回答ありがとう御座います。不明瞭な点が多く、すみません。 具体的には、ある問題集の解答のPDFの配布で使用したいと思っております。問題集のユニット(53のユニット)ごとにA~BないしCの問題があり、メニュー1でユニットの指定、メニュー2で問題の指定をするようにしたいです。 早速試したのですが、プルダウンメニューとGOのボタンの間に、かなりスペースが開いてしまいます。(メニューの候補が多いせいか…)これを解消する方法はないでしょうか? ちなみに、この方法で行うとHTMLドキュメントが13KBになりました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • プルダウンメニュー

    ある問題集の解答を掲載したいと思っています。 問題集は1~5章まであり、各章に1.1や3.1A等の節があり、各節にAからBないしC問題があり、その中に111,112,113...というふうに問題があります。また巻末に付録問題と総合問題があります。(付録、総合問題にはAやB問題というのはなく単に問題があるだけです) これらを、プルダウンメニューのコンボ(1つめに選んだメニューによって2つめで選ぶメニューを変化させ、「表示」ボタンで解答のPDFを表示する)の形にしたいです。 具体的には、1つ目で1.1や3.1A等の節及び付録問題、総合問題を表示させ、2つ目でAからBないしC問題の選択肢を表示させたいです。ですが、1つ目で付録や総合を選んだ場合には単に「問題」だけを表示させたいです。問題はA、B問題ごとにPDF表示させるつもりです。 本で調べたのですが複雑なのはわかりませんでした。わかる方おられましたら、お教え下さい

  • プルダウンメニューのコンボ

    ある問題集の解答を掲載したいと思っています。 問題集は1~5章まであり、各章に1.1や3.1A等の節があり、各節にAからBないしC問題があり、その中に111,112,113...というふうに問題があります。また巻末に付録問題と総合問題があります。(付録、総合問題にはAやB問題というのはなく単に問題があるだけです) これらを、プルダウンメニューのコンボ(1つめに選んだメニューによって2つめで選ぶメニューを変化させ、「表示」ボタンで解答のPDFを表示する)の形にしたいです。 具体的には、1つ目で1.1や3.1A等の節及び付録問題、総合問題を表示させ、2つ目でAからBないしC問題の選択肢を表示させたいです。ですが、1つ目で付録や総合を選んだ場合には単に「問題」だけを表示させたいです。問題はA、B問題ごとにPDF表示させるつもりです。 本で調べたのですが複雑なのはわかりませんでした。わかる方おられましたら、お教え下さい

    • ベストアンサー
    • HTML
  • プルダウンメニューから2つのインラインフレーム内を切り替える

    タイトルの通りなのですが、教えてください。 同じウインドウ内に、プルダウンメニューと2つのインラインフレームがあります。 左のインラインフレームにはjpgのイメージ、右のインラインフレームにはテキストが入ります。 プルダウンメニューは、A支店、B支店などの支店名が表示されます。 プルダウンメニューの支店名を選択して、GOボタンをクリックしたら、インラインフレーム内に選択した支店のjpgイメージと、説明のテキストを表示されるには、どのように記述したらよいですか?

  • プルダウンメニューの自動変更

    プルダウンメニューAとプルダウンメニューBがあります。 プルダウンメニューAでは「A-1」と「A-2」が、 プルダウンメニューBでは「B-1」と「B-2」が 選択できるメニューとして指定されています。 プルダウンメニューAで「A-1」を選択すればプルダウンメニューBで「B-1」が、 プルダウンメニューAで「A-2」を選択すればプルダウンメニューBで「B-2」が 自動的に選択されるようにプログラムすることは可能でしょうか? どなたかご教授ください。

  • 2つのプルダウンメニューで、同じものを選べないようにする

    ふたつの選択肢を選ぶために、プルダウンメニューがふたつ並んでいます。  例えばメニュー1の選択肢 ・A ・B ・C ・D  でAを選んだとき、メニュー2の内容が ・B ・C ・D  になるようにしたいのですが、どうすればいいでしょうか?  チェックボックスで選べる数をふたつまでにする、というのも方法としてはありなんですが、今回は都合上プルダウンメニューで実装したいのです。ご教授お願いします。

  • プルダウンメニューからチェックボックスを表示したい

    php、javascript、mysqlを使用し、プルダウンで選択後、チェックボックスを表示させる仕組みを作りたいのですが、 どうすればよいのか分かりません。 どなたか力を貸して頂きたく思います。 例えば下記のようなTBLがあったとします。 ■TBL:oya  oyaコード  10  20  30 ■TBL:ko  oyaコード    koコード  10        1100  10        1200  10        1300  20        2100  20        2200  30        3100 TBL 「oya」 をプルダウンメニューにセット。 プルダウンメニューを選択する度にTBL 「ko」を呼び出し、同ページ内にチェックボックスとして表示させたいと考えています。 例) ・10が選択されたら  「1100」、「1200」、「1300」のチェックボックスを表示する プルダウンメニューへのセットは出来たのですが、プルダウン選択後の「ko」を呼び出す箇所が分かりません。 php Mysql javascript で実現したいと考えております。 サンプルページでもいいですので、何かありましたら教えて下さい。 お分かりになる方よろしくお願いいたします。

  • プルダウンメニュー表示時の高さの指定方法

    ブラウザ上でプルダウンメニューを表示させる際に、表示される高さ(タテ幅)の指定をするにはどうすればよいか、ご存知の方は教えていただけないでしょうか? ちなみに、プルダウンメニューの横幅は、<select>タグ内に、「style="width:(幅を指定);"」を記述することで固定幅の設定が可能でしたが・・・ なお、プルダウンメニューは初期表示として、1件のみ表示させるものとします(すなわち、<select>タグ内の「size="1"」の指定は変えないこととする)。 というのも、プルダウンに表示させる項目(条件によって可変)の件数が多い場合に、プルダウンメニュー内でスクロールさせるのをできるだけ避けたいためです。 よって、方法としては、 1.プルダウン表示させる際の高さ(タテ幅)を固定で指定する 2.可能であれば、登録されている全項目の表示をさせる 以上2つの方法を考えています。 なにかよい方法があれば、ぜひ教えてください。

    • ベストアンサー
    • HTML
  • 別ページからフォームへ移動したときにプルダウンの指定のメニューを自動選

    別ページからフォームへ移動したときにプルダウンの指定のメニューを自動選択したいです! メニューページのAというメニューから予約フォームへリンクしたときにフォームのプルダウンを自動で Aメニューを選択した状態で表示したいのですが、どうしたら出来るのかわかりません。 Javascriptかphpでサンプルや参考になるページがありましたら教えてください。

  • プルダウンメニューを表示したときのイベントは?

    VB6で、コンボボックスのプルダウンメニューをクリックしてアイテムを表示したときのイベントは無いのでしょうか?

  • プルダウンメニューが隠れてしまいます

    indexページにFlashで制作したswf形式のムービーを配置しました。 ところが ヘッダに配置してたメニューからJavaScriptでプルダウン表示されるメニューと ムービーが重なる部分がレイヤーのような状態となり プルダウンメニューがムービーの背面へ隠れてしまい メニューの機能が失われてしまいました ・swfはhtmlに直接配置して表示 ・プルダウンのメニューは外部に置いたjsファイルを読み込んで表示 ・メニューも外部JavaScriptからの読み込み 以上の仕様なのですが問題点はswfの配置方法でしょうか? それともJavaScriptのレイヤーに問題があるのでしょうか? アドバイスをお願い致します