-PR-
締切済み

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

  • すぐに回答を!
  • 質問No.42293
  • 閲覧数110
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 67% (40/59)

はじめのリストボックスで指定すれば、
隣のリストボックスには指定された関係のもののみを表示させ、
「指定なし」とすれば隣のリストには、
存在するものすべてを表示させたいのですが、可能でしょうか?

具体的には、はじめのリストで、「福岡県」を選ぶと、次のリストには「福岡県の都市」のみが表示されていて、「指定なし」にすると「九州全域の都市」がずらずらと表示されるようなものです。

リストの中身はCGIを利用して追加させています。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.2
レベル8

ベストアンサー率 46% (12/26)

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


  • 回答No.1
レベル10

ベストアンサー率 68% (59/86)

この手の動作を実現するには、
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したら、都道府県に属する市町村のみを、
市町村リストに追加するようにしています。
このQ&Aのテーマ
このQ&Aで解決しましたか?
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


専門家があなたの悩みに回答!

-PR-

ピックアップ

-PR-
ページ先頭へ