• 締切済み

選択項目を狭めていきたいのですが・・・

はじめのリストボックスで指定すれば、 隣のリストボックスには指定された関係のもののみを表示させ、 「指定なし」とすれば隣のリストには、 存在するものすべてを表示させたいのですが、可能でしょうか? 具体的には、はじめのリストで、「福岡県」を選ぶと、次のリストには「福岡県の都市」のみが表示されていて、「指定なし」にすると「九州全域の都市」がずらずらと表示されるようなものです。 リストの中身はCGIを利用して追加させています。

  • bori
  • お礼率67% (40/59)

みんなの回答

  • arapon
  • ベストアンサー率46% (12/26)
回答No.2

このサイトを参考になされてはいかがでしょうか? http://www.pafiac.com/javascript/java3-1.html 右クリックしてソース表示にすると良くわかります。

参考URL:
http://www.pafiac.com/javascript/java3-1.html
  • sasadora
  • ベストアンサー率68% (59/86)
回答No.1

この手の動作を実現するには、 1.都道府県選択画面と市町村選択画面の2段階にする。 2.JavaScriptで選択項目を変化させる。 3.選択したタイミングでsubmitして画面を表示しなおす。 なんて実現方法があります。 2.はJavaScriptのバージョンで動作が異なったりするのを確認する必要がありますし、そもそもJavaScriptを無効にしていたらなにも動作しません。 3.は表示し直したときに、他の選択・入力項目も反映し直さなければなりません。 そんな理由で私的には、1.をおすすめしますが、 あえてJavaScriptで変化させるとしたら、 とりあえず全ての選択項目をクライアントに送る必要があります。そうでないとJavaScriptで使えないので。 長くなりましたが、以下、サンプルです。 参考URLに実際のものがおいてあります。 ******************** <SCRIPT LANGUAGE=javascript> //市町村 function citydata(area, city, name){ this.area = area; this.city = city; this.name = name; } //CGIで動的に作成 ここから city = new Array(8); city[0] = new citydata(0, 0, "福岡市"); city[1] = new citydata(0, 1, "飯塚市"); city[2] = new citydata(0, 2, "大川市"); city[3] = new citydata(0, 3, "大牟田市"); city[4] = new citydata(1, 0, "鹿児島市"); city[5] = new citydata(1, 1, "出水市"); city[6] = new citydata(1, 2, "指宿市"); city[7] = new citydata(1, 3, "大口市"); //CGIで動的に作成 ここまで function change(sel){ with (document.main.sityouson){ length = 0; for (i = 0; i < city.length; i++){ if (sel == "" || sel == city[i].area){ length++; options[length - 1].value = city[i].city; options[length - 1].text = city[i].name; } } } } </SCRIPT> <HTML> <BODY onLoad="change('')"> <FORM NAME=main> 都道府県: <SELECT NAME=todoufuken onChange="change(this.options[this.selectedIndex].value)"> <OPTION value="">指定なし <OPTION value="0">福岡県 <OPTION value="1">鹿児島県 </SELECT><BR> 市町村: <SELECT NAME=sityouson> </SELECT><BR> </FORM> </BODY> </HTML> ******************** 「CGIで動的に作成」とある範囲をCGIで出力するようにして、 都道府県の方をchangeしたら、都道府県に属する市町村のみを、 市町村リストに追加するようにしています。

参考URL:
http://users.goo.ne.jp/sasadora/select.html

関連するQ&A

  • EXCELで、1つのセルに選択した値を並べて表示

    A1のセルに、B1からB10までにある値のうち、該当する値だけをリストから選択して並べて表示するような方法がありますでしょうか。 例えば、B1からB10には次のような値が入力されており、 B1広島県、B2山口県、B3福岡県、B4佐賀県、B5長崎県、B6大分県、B7熊本県、B8宮崎県、B9鹿児島県、B10沖縄県 A1には、「広島県、福岡県、大分県」と表示したい場合等です。A1をクリックするとリストが表示され、チェックボックスにチェックするとそれが並びで表示されるようなイメージです。 さらには、値の間には読点またはカンマが入力または表示されるようにできれば最高です。 以上、よろしくお願いいたします。

  • リストボックスへの項目追加

    すでに存在するリストボックスに、新しく項目を追加することはできるのでしょうか? VBアプリでよくあるパターンなのですが、以下のような仕組みをWEB上で作ろうと思っています。 (1)親ウィンドウの「参照」ボタンをクリックして、別ウィンドウとして参照リストを表示させる。 (2)参照リストから選択した内容を親ウィンドウのリストボックスに追加する(この時、参照リストのウィンドウ表示を消します)。 なお、参照リストからのリスト選択は複数回行うことができるようにしたいです。 どなたかこの問題を解決できる方いますでしょうか?

  • 選択した項目を隣のリストへ移動

    左のリストs1に表示された 都市名を選択してダブルクリックすると、 選択されている都市名を右のリストu1に移動して、配列citiesに格納された順に都市名をu1で表示するアップレットを作りたいのですが、移動した都市名が配列citiesに格納された順になりません。 選択した都市名が配列citiesで何番目かを調べて、それを変数jに格納して、jの値をもとに上から順に都市名を表示するようにしました。 改善点が分からないので、教えてください。 プログラムは以下の通り import java.awt.*; import java.applet.*; import java.awt.event.*; public class CityList extends Applet implements ActionListener{ List s1 = new List(12, true); //左側のリスト List u1 = new List(12, true); //右側のリスト String[] cities = {"札幌","仙台","千葉","横浜","川崎", "名古屋", "京都", "大阪", "神戸", "広島", "北九州", "福岡"}; public void init(){ for(int i = 0; i < cities.length; i++) s1.add(cities[i]); s1.addActionListener(this); add(s1); add(u1); } public void actionPerformed(ActionEvent e){ //配列citiesの添え字 int j; //左側のリストs1を,上から順に調べる for(int i = s1.getItemCount() - 1; i >= 0; i--){ //左側のリストs1で項目が選択されているかどうか if(s1.isIndexSelected(i)){ //配列citiesの添え字を0に初期化 j = 0; while(true){ //左側のリストs1で選択されている項目が, //配列citiesでは何番目かを調べる if(s1.getItem(i) == cities[j]) break; else j++; } //選択されている項目を,右側のリストu1に移動させる u1.add(s1.getItem(i), j); s1.remove(i); } repaint(); } } }

  • ドラッグ&ドロップによる項目移動

    ドラッグ&ドロップによる項目の移動が出来るかどうかを教えて頂きたいです。 また出来るのであればやり方(参考サイト等)教えて下さい>< 検索してもドラッグ&ドロップでファイルパスの取得とかしか出ないので困っています>< ・リストボックスを2つ配置して選択している項目を2つのリストボックス間で移動したいです。 (1)リストボックス1の項目を選択 (2)リストボックス2へドラッグ&ドロップ (3)リストボックス1では選択されていた項目を削除、リストボックス2へは項目を追加 ・DataGridViewなどのテーブル表示の列の入れ替え Windowsのフォルダで「名前、更新日時、種類、サイズ、...」と並んでいる項目をマウス操作で入れ替えなど出来ますよね?あんな事も出来たりしませんかね? 「マウスでのドラッグ&ドロップで操作する」がポイントです よろしくお願いします。

  • アクセスのフォームのデザインビューで新しい項目が、フィールドリストに表示されない。

    テーブルに新しい項目を追加しました。(チェックボックス)。 クリエの方にも追加しました。 しかし、フォームに追加しようと、フィールドリストを参照したところ、新しい項目が表示されてません。 どのようにしたら新しい項目が表示されますでしょうか? よろしくお願いします。

  • WIndows3.1 ウィンドウの描画

    Windows3.1では、ウィンドウの再描画を行う時、再描画を行う範囲を指定することは出来るのでしょうか? 例えば、リストボックスにデータを追加表示し、再描画の処理を行う時に、(リストボックスを含むウィンドウ全体ではなく、)リストボックスのみを再描画することは可能でしょうか? WindowsNTでは、指定範囲の再描画を行う事はできると思うのですが。 以上、よろしくお願いします。

  • WIndows3.1 ウィンドウの描画

    Windows3.1では、ウィンドウの再描画を行う時、再描画を行う範囲を指定することは出来るのでしょうか? 例えば、リストボックスにデータを追加表示し、再描画の処理を行う時に、(リストボックスを含むウィンドウ全体ではなく、)リストボックスのみを再描画することは可能でしょうか? WindowsNTでは、指定範囲の再描画を行う事はできると思うのですが。 以上、よろしくお願いします。

  • リストボックスから選択、結果を表示する。

    お世話になります。 perlでcgiを作りたいのですが、 簡単なsampleはないでしょうか。 参考になるようなページを教えていただければ十分です。 【機能】 ファイルxをリストボックスから選択させ、 内容を表示する。 【ファイルxの内容例】 リンゴ、青森、300 ミカン、和歌山、60 バナナ、輸入、180 というように、品名、産地、単価の項目が列んでいます。 【動き】 リストボックスでファイルxを表示させ、 選ばれた項目の単価を表示する。 【イメージ】 リストボックス リンゴ ミカン バナナ ↓ ミカンを選ぶ ↓ 単価は60円です。 と表示する。 以上、分かりにくいですが、 宜しくお願いします。

    • ベストアンサー
    • Perl
  • 選択したリスト項目のラベル名を取り出すには?

    選択したリスト項目のラベル名を取り出すには? どなた様かご存知でしたらお助けください。 環境はWinXP,Flash8(AS2.0)です。 作りたいこと:選択したリスト項目のラベル名が取り出せること 作成した状況: 1)リスト.asファイルに配列でリストを作成、それをFlaファイルのリストボックス(listboxA)に表示。(リスト項目が1,000個以上あるのでList内のパラメータに記載はせず、配列を記載した別ファイルで対応することにしました。)  Shopping_array[0] = {label:"ばなな", data:"1"};   …  Shopping_array[13] = {label:"りんご", data:"14"}; のように表記し、  リスト表示までは問題なし。 2)Adobeのページより下記をコピペ、ダイナミックテキスト(statusMessage)を用意して表示確認。    import mx.controls.Alert;  import mx.data.binding.Binding;  import flash.filters.BevelFilter;  myListBoxListener = new Object ();  myListBoxListener.change = function (eventObj)   { var eventSource:Array = eventObj.target; var theSelectedItem = eventSource.selectedItem; var theSelectedItemLabel = theSelectedItem.label; msg = theSelectedItemLabel; statusMessage.text = msg;   };  listboxA.addEventListener ("change", myListBoxListener); 困っていること: 上記のスクリプトで動作はしたのですが、選択1回分しかテキストボックスに表示できません。 選択したものを確定させるまでは、何回でも選択できるようにしたいと思っております。 お願い: 選択した項目により、次の作業を同じようにさせたいと思っており、ここで躓いて大変困っております。 つたない文面ですが、どなた様か対処方法をご存じでしたらご教示下さい、 ※AS3.0の時代に古いものを使っております。すみません。

    • ベストアンサー
    • Flash
  • エクセルの関数についてです。

    初歩的な質問ですが。。。 あるセルに住所を入力すると、その隣のセルに支店担当者表に対応する支店と担当者の名前が入力される様にする方法を探しています。 具体的には、、、 支店担当者表は"福岡県""九州""山田"という様に、"住所(都道府県)""支店名""担当者"の順に並んでいます。 この表を利用して、"福岡県福岡市~"と入力すると自動的に隣とその隣のセルに"九州""山田"と入力すようにしたいのです。 VLOOKUP関数を使って見たのですが、"福岡県"など都道府県だけの入力ですとうまくいくのですが、"福岡県福岡市~"と県の後を入力すると#N/Aエラーが出てしまいます。 友人が言うにはLEFT関数を併用すればうまくいくとの事ですが、調べて見ても良くわかりません。 又、可能ならば住所を未入力のセルには#N/Aエラーの文字が表示されない様にしたいです。 わかり難い説明かもしれませんが、どなたか回答お願い致します。

専門家に質問してみよう