• ベストアンサー

「フォーム リストボックス」の作成について

リストボックスによる選択メニューを作成しています。 HP作成ソフトで、型枠は簡単に作成できますが、 その設定の中で、「値」の記述で困っています。 具体的に実現させたいことは以下のとおりです。 1.フレームAにリストボックスを置く。 2.フレームB(親)の内容を、選択によって変化させる。 以前に、同一ページにリストボックスを置いて 変化させる方法は取ったことがあるのですが、 今回のケースではなかなかうまくいきません。 勉強を兼ねて作成していますので、 どんな細かいことでも構いません。 よろしくお願いいたします。

  • HTML
  • 回答数4
  • ありがとう数3

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

  • ベストアンサー
  • madman
  • ベストアンサー率24% (612/2465)
回答No.2

フレームBが親となっていますが、フレーム内フレームですか? 単純にフレームが横に並んでいる場合は、親ではないですよ。 まず、フレーム設定時にフレームに名前を付けましょう。 <HTML> <HEAD> </HEAD> <FRAMESET cols="130,*" border="0"> <FRAME src="frameA.html" name="frameA"> <FRAME src="frameB.html" name="frameB"> </FRAMESET> </HTML> で、frameAのスクリプトを以下のように書きます。 <HTML> <HEAD> <script type="text/javascript"> function viewURL(sel) { adrs = sel.options[sel.selectedIndex].value; if(adrs!=0){ top.frameB.location=adrs; } } </script> </HEAD> <BODY> <FORM ACTION="."> <SELECT NAME="aaa" onChange="viewURL(this)"> <OPTION value=0>選んでください <OPTION value="http://www.yahoo.co.jp">Yahoo <OPTION value="http://www.goo.ne.jp">goo <OPTION value="http://www.google.co.jp">Google <OPTION value="http://www.excite.co.jp">Exite </SELECT> </FORM> </BODY> </HTML> これで、プルダウンで選択すると、横の大きなフレームに指定したページを表示できます。URLにジャンプするのではない場合は、書き換えてください。

lapis_lazuri
質問者

補足

早速のアドバイスいただきありがとうございます。 フレームの説明が不足していたようですので、 付け加えさせていただきます。 フレーム構成は、上中下の3段構成にしており、 その中で、上フレームにリストを置き、 選択により、中フレームを変化させようとしています。 上記の補足を踏まえたアドバイスを頂けると幸いです。 よろしくお願いいたします。

その他の回答 (3)

  • madman
  • ベストアンサー率24% (612/2465)
回答No.4

<SELECT NAME="aaa" onChange="viewURL(this)"> でSELECTの内容を書き換えた時に動く。thisは今回選択する情報。 viewURL(sel)のselは引数なので、SELECTの情報。 sel.selectedIndexこれはSELECTで選ばれている番号。 0から順番だったと思う。 sel.options[].valueは、SELECTの並んでいるOPTIONの値。 <OPTION value="http://www.yahoo.co.jp">Yahoo で設定したvalueの情報が入っています。 で、選んだ番号を[]内に添字で入れますので、実際に選んだ番号のvalueをadrsに代入します。今回はvalueはURLです。 if(adrs!=0){ このadrsの値が0でなければ、 top.frameB.location=adrs; 一番上位のWindowに含まれるframeBというフレームの中身をadrsのアドレスで書き直します。 if(adrs!=0){ で0を判定しているのは、リストの一番上の空白を選択した時は動作しないようにする為です。 まだJavaScript勉強しはじめて2週間ぐらいなんで、私の説明も結構いい加減かも...(^^; ビルダーなどのツールで、JavaScriptを勉強するなら、出力されたコードがなぜ索動くのかを勉強したほうが良いですよ。 ビルダーは結構無駄なコードをはいたりしますから。

参考URL:
http://tohoho.wakusei.ne.jp/js/index.htm
lapis_lazuri
質問者

お礼

ありがとうございました! 参考URLも参照しながら勉強してみようと思います。 お手数をおかけしました。

  • madman
  • ベストアンサー率24% (612/2465)
回答No.3

上中下でも、基本は同じです。 親フレームは、<FRAMESET>1つなのですよね? その仲にFRAMEが3つあるのであればフレーム内に置くスクリプトは同じです。 こんな感じ <HTML> <HEAD> </HEAD> <FRAMESET rows="130,*,60" border="0"> <FRAME src="frameA.html" name="frameA"> <FRAME src="frameB.html" name="frameB"> <FRAME src="frameC.html" name="frameC"> </FRAMESET> </HTML>

lapis_lazuri
質問者

お礼

ありがとうございました。 先ほどの補足を行った後に、 教えていただいたスクリプトを組み込み、 たった今動作したところでした! よろしければ、今回のスクリプト構文に関して、 簡単な解説文を頂けないでしょうか? 今後にも役立つと思いますので…。 たびたび申し訳ありませんが、 またよろしくお願いいたします。

回答No.1

大まかに説明しますと、ターゲットを指定する必要があります。 親を変化させたいのでしたら、_parentというのを設定する必要があります。 ただ、作成ソフトで作っているということですがどのソフトでやられてるかわかりませんが。 もし、そのソフトでリンク先を設定する際に、どこかにターゲットという項目はありませんか?もしそれがあれば、そこに設定します。

lapis_lazuri
質問者

お礼

ありがとうございました。 単純にフレーム内でリンクを張った場合に有効な ターゲットなんですよね? 今後にも活かしていきたいと思います。

lapis_lazuri
質問者

補足

早速のアドバイスありがとうございます。 使用しているソフトは、ホームページビルダーVer.6です。 リストボックスの属性の設定を開くと、 【項目】【値】の2種類しかありません。 ヘルプ内を見ても、値に関しては詳しい説明がなく、 苦労しています…。

関連するQ&A

  • リストボックスからのリンク

    新年明けましておめでとうございます。 sweetnovemberと申します。 早速質問です。 ホームページビルダーにてフレームで縦2分割したページの右側のフレームに リストボックスを設置したのですが、そこから目的のページ(フレーム縦2分割 されたページ)へ新規ウィンドウでリンクを貼りたいのですが どのようなスクリプトを記述したらよろしいのでしょうか? 今のままだと、フレームの中に更にフレームページが出来てしまい 見ずらいのです。 宜しくお願い致します。 HPの提出期限が迫っているのでお願いしますっ! (また、リストボックスとオプションメニューの違いも教えていただきたいです)

  • リストボックス項目の変更

    javascript初心者です。 ラジオボタンを2つ、複数選択リストボックスが1つあります。どちらのラジオボタンをチェックしているかで、リストボックス内の項目を変化させたいと思っています。 これはjavascriptで実現可能でしょうか?参考になるサイトや方法を教えていただければ嬉しいです。

  • リストボックスでフリー入力したい

    初心者です。 問合せフォームで現在リストボックスで、選択1 選択2 選択3 その他 が選択できるように作成しています。 実際、その他の数が多いので、フリーで入力できるように したいのです。リストボックスでは不可能ですか? 無理でしたら、他の方法でもいいので、実現できる方法 アドバイスお願いします。

  • お願いします! リストボックスの扱い方

    切羽詰まってます。なにとぞお願いします。m(__)m ALLと付けた あるチェックボックスをチェックすると、 その下にある配置した リストボックスが選択できなく なるか ( disabled ) もしくは、リストボックスの 1行目をのぞいて(選択してください、メッセージがある) 全部選択された状態になる、スクリプトはどう書けば いいんでしょう。 本を何冊か買っていろいろみているんですが、具体例が 載ってなくほとほと弱っています。

  • エクセルマクロリストボックスの作成方法について

    最近、マクロを勉強し始めたばかりで困っています。 【質問内容】 ダイアログを作成し、リストボックスからリストを作成する方法についてですが、例えばリストボックスが2つあり (1)リストボックス1では、「A、B」が選択できる。 (2)(1)で「A」を選択するとリストボックス2では「C、D」が選択できる。 (3)(1)で「B」を選択するとリストボックス2では「E、F」が選択できる。 といった、エクセルで言えば入力規則のindirect関数のような設定方法についてお教えいただけないでしょうか? 恐れ入りますがよろしくお願いいたします。

  • 2つのリストボックス間で自動に値をセット。

    2つのリストボックス間で自動に値をセット。 リストボックスを2つ用意します。 仮にAリストボックスとBリストボックスとします。 Aリストボックスから値を選択すると、 Bリストボックスに自動連動して値が選択される。 このようなことは可能でしょうか?。 (可能だとは思うのですが) どなたかご教授下さい。

  • リストボックスの値の再表示

    こんにちは! リストボックスを選択した後に、submitボタンを押して同一 ページに飛んだ際に、選択したリストボックスの値を表示させたい (一番上の値に戻ってしまいます。) のですがどのようにすれば可能でしょうか? ちなみにリストボックスはAccessをADO接続しています。

  • 複数リストボックスの連動について

    複数リストボックスの連動についてお聞きします。 エクセル2003、VBAのユーザーフォームのリストボックスになります。 VBAに関わらずプログラミング全般初心者で恐縮ですが よろしくご指導ください。 毎月の明細から 地域を分類軸に、そこに含まれる支店を、地域をまたいで複数選択ができるリストボックスの作成をしたいと考えてます。 ListBox1(地域),ListBox2(支店)に値を重複無しに、組み合わせを表示させるまではできたのですが、 ListBox1(地域)の選択を解除した後に、再び選択すると、 ListBox2(支店)の値が重複して表示されてしまいます。 ネットで知恵を探したのですが、 ListBox1のクリックイベント時に、ListBox2の値を消す しか見つからず、自分の課題がどうしても解決できません。 どのような方向性で考えれば、解決できるのか教示いただきたいです。 自分としては、ListBox1の選択を解除したときに、 対応するListBox2が消えればと考えましたが・・・全くうまくいきません。 もし、自分の考えが的外れでしたら、正しい考え方をお教えいただきたいです。 考えが妥当であれば、どういう記述をすべきなのか、 教授願いたいです。 よろしくお願いします。

  • ACCESSフォームのリストボックスでレコードが選択できない

    ACCESS2000です。 フォームの左側に親テーブルのフィールド1の値を選択させるリストボックスがあり、そこで選択したレコードにリンクする子テーブルのレコードをフォームの右側にサブフォームで表示させたいのですが、リストボックスでレコードを選択できません(クリックしても反転しません)。でもレコード移動ボタンを押すと、リストボックス内の該当レコードがちゃんと反転し、右側のサブフォームにも正しく反映します。 リストボックスのプロパティはくまなく見ましたがそれらしい設定項目はみつかりませんでした。どこを直せばよいのでしょうか。

  • コンボボックスかリストボックスの使い方

    VB2008でプログラミングしています。 コードと値がセットになっているDBからデータを取得して フォームに表示させるように作成しています。 フォームに表示するのは値で、実行ボタンを押したときには コードを取得したいのですが この場合は、コンボボックスでしょうか?リストボックスでしょうか? 複数選択はできません。 選ばれたコードを元にDBを検索するプログラムが実行されます。

専門家に質問してみよう