• ベストアンサー

リストボックスで選択してさらにリストボックスで選択

都道府県のリストボックスを作って、たとえば北海道を選択したら北海道の市町村が出てくるようなのを作りたいのですが、やり方がわかりません。。 どうしたらいいですか?

  • CGI
  • 回答数5
  • ありがとう数0

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

  • ベストアンサー
  • leap_day
  • ベストアンサー率60% (338/561)
回答No.5

こんにちは ありゃ!どうもすみません。いつもの癖で<>をつけてました(--;) そのまま 北海道(ENTER Key 押す) 青森(ENTER Key 押す) という風に47都道府県を縦に並べて ken.dat の名前で保存 で mati_1.dat に北海道の市町村 mati_2.dat に青森の市町村 という風に ken.dat で書いた都道府県の順番に番号を振って47個mati.datを作ってください 書き方は ken.dat と同じです 旭川(ENTER Key 押す) 札幌(ENTER Key 押す) という感じで それで表示中身ですが top.cgiでken.datを読み込んでセレクトボックスで47都道府県選択するようになり 選んだ項目によって***.cgiでその都道府県に関連するmati.datを読み込み、市町村の選択をセレクトボックスで表示します 北海道を選択したらmati_1.datを、青森を選択したらmati_2.datをよみこむ、という風に ###.cgiは最後の処理部なのでここをお好みに変えてください ***と###は適当な名前付けてくださいね(^^) ・・・とまぁmati.datを47個作ってるわけですがこれを1個のmati.datでやることもできますがそのファイルがかなり大きいものになりますし表示処理もややこいことになるので別々のファイルでやることにしました(^^)

その他の回答 (4)

  • leap_day
  • ベストアンサー率60% (338/561)
回答No.4

こんにちは 携帯サイトでのCGIを取り扱ってないので何処までできるのかわかりませんが以下のような感じになるのではないでしょうか? まずメモ帳を使ってデータベースを作ります(ken、matiなどの名前は何でもいいです) ≪ken.dat≫(都道府県のデータ) 北海道<> 青森<> ・ ・ ≪mati_1.dat≫(県別に市町村のデータ) 旭川<> 札幌<> ・ ・ のようにmati_1.dat~mati_47.dat迄作ります ≪top.cgi≫ print " <form action='***.cgi' method='post'>\n"; print " <select name='ken'><option value=''>都道府県を選択してください</option>\n"; open(IN,"./ken.dat" || die); @ken=<IN>; close(IN); for(1..47) { print "<option value='mati_$i'>$ken[$i]</option>\n"; $i++; } print "<input type='submit' value='市町村選択画面へ'></form>\n"; ≪***.cgi≫ $logfile="$in{'ken'}.dat"; print "<form action='###.cgi' method='post'>\n"; print "<select name='mati'><option value=''>市町村を選択してください</option>\n"; open(IN,"$logfile" || die); @mati=<IN>; close(IN); $num=@mati; for(1..$num) { print "<option value='$i'>$mati[$i]</option>\n"; $i++; } print "<input type='hidden' name='ken' value='$logfile>\n"; print "<input type='submit' value='表\示'></form>\n"; ≪###.cgi≫ $logfile="$in{'ken'}; $num=$in{'mati'}; open(IN,"$logfile" || die); @mati=<IN>; close(iIN); print "$mati[$num]\n"; 動作確認はしていないので記述ミスがあるかもしれないですけど・・・ 作り方の参考になれば・・・

datfink
質問者

補足

北海道<> 青森<> ・ ・ などありますが、<>のなかにはなにを入れたらいいですか? 旭川<> 札幌<> ・ ・ もなんですが、北海道選択時にこれが連鎖するにはどう入れたらいいでしょうか?

回答No.3

郵便番号と都道府県のデータは総務省郵便局のホームページからダウンロードしてください。 それをCGIで扱えるように編集する必要があります。 (編集にはMicrosoftAccessやFileMakerProなど、基本的なデータベースの知識があると楽です。) 都道府県一覧を表示 -> 都道府県を選択して送信-> 選択した都道府県とそこに属する群市町村の一覧表示 JAVAやJavaScriptを使う必要はありません。 CGIの内部はデータベースを勉強してください。 データベースの基本だけで処理出来ますから。 > 都道府県入力後、市町村が出てくるのは見たことがありません。 都道府県+群市町村から郵便番号を検索するページならあります。(郵便局のサイトとか) 通販サイトなどで郵便番号がわからない人向けの入力支援は多いです。 JavaScript解説サイトのAjaxのサンプルは、 郵便番号から住所の正引きを作ったら、逆引きまで作って公開はしないでしょう。(面倒だし) 自分も練習用に作りましたが、正引きすら公開してません(面倒だし(笑))

datfink
質問者

補足

データベースの作り方っていうのが初めてでやったことないのですが、とりあえず総務省郵便局からダウンロードはやってみました。 できるかどうかわからないですけど、ネットで検索しながらデータベースを頑張ってとりあえず覚えてみます! ありがとうございました!

  • maura
  • ベストアンサー率46% (48/104)
回答No.2

郵便番号入力したら都道府県市町村が出てくるのは、 見たことがありますが 都道府県入力後、市町村が出てくるのは見たことがありません。 もし作って公開したらすごいですよ。 とりあえず 手順を 1.都道府県と市町村のデータを収集する。    Googleで検索してみましたが、まさにこれ!っと言うものがなかったので、手作業で作成することになるかも。 2.リストボックスを選択したら、別のリストボックスの内容が変わる方法を調べ作成する   (1) JavaScriptでリストボックスを変更する     ※携帯サイトでは不可能な方法です。   (2) リストボックスを選択したら onchenge イベントでsubmit し     市町村のリストボックスを生成し表示する 1番目のデータ収集が面倒なだけでいたって簡単だと思います。 がんばってください。

datfink
質問者

補足

やっぱり携帯サイトではかなり不可能ですよね・・・ 自分もいろいろ考えたんですけど連動するって見た事なくて。。 すいませんわかりました!ありがとうございます!

  • akuhijrwq
  • ベストアンサー率35% (381/1064)
回答No.1
datfink
質問者

補足

携帯サイトなので、JAVAじゃなくてCGIで行いたいんですけどこれでできますか?

関連するQ&A

  • ロータスアプローチのリストボックスでスクロールリストに表示する値を少なくする方法

    ロータスアプローチのリストボックスの使い方で質問です。 「都道府県名」のリストボックスと「市町村名」のリストボックスを作っています。 都道府県リストボックスで「東京都」を選択した場合、市町村リストボックスには都内の市町村名だけ表示させたいと思っています。 ご存知の方がいらっしゃれば、是非とも教えて下さい。

  • リストボックス型の選択メニューの作り方

    教えてください。 エクセルでコントロールボックスを開いて、リストボックス内の内容を選択できる物を作りたいのですが・・・お願いします。 例えば、リストボックスに「選択する↓」の「↓」を押すと下の方に 「1・2・3・4・5」と出てきて、選択出来る様な物です。

  • フォームのリストボックスの選択

    vb2005にてIEのリストボックスの選択をしようとしているのですが リストボックスが変動的で常に一番最後を選択したいのですが どのようにすればよろしいでしょうか? WebBrowser1.Document.Forms(0).DomElement("category").selectedindex() = 1 これだと上から2つめが選択されるんですよね。 リストボックスの一番最後を選択したいんです。 どうすればいいでしょうか?教えてください。

  • アクセスのクエリ、リストボックスで複数選択をしたい

    フォームのリストボックスから選択してクエリで検索しています。 ▼フォーム 例) 北海道 東北 関東 ▼クエリ [Forms]![フォーム]![地域] ← 抽出条件 リストで1つしか選べないのですが、これを複数選択出来るようにするにはどのようにしたら 良いのでしょうか? 今だと北海道しか選べないので、これを北海道、東北などと複数を選べるように変更したいと思っています ?ご存知の方教えてください。

  • リストボックス

    携帯サイトで47都道府県のリストボックスを製作してるんですけど、AUがうまく表示できません。 ドコモはちゃんと別画面に飛んで表示されるんですが、AUの場合は一面表示ができずに、一行のボックスを下に押す感じでしか表示できないんです。 使ったタグはコレです <form method="POST" action="example.cgi"><SELECT size="1" name="住所"> <OPTION value="1">北海道</OPTION> </SELECT> こんな感じで47都道府県入れています。 なぜならないのかわかる方いませんか?

  • ACCESS リストボックスからの選択で

    ACCESSでフォームを作っています。 その中で、条件にあるデータをリストボックスで一覧表示し、その中からデータを選択して、【実行】ボタンで、次のフォームを開くようにしています。 そのときにリストボックスから何も選択していない場合、エラーメッセージを返したいのですが、「選択していない」というのをどうやって判断すればよいでしょうか。 よろしくお願いします。

  • accessでのリストボックス選択のイベント

    お世話になります。 度々で恐縮なのですが、以下の質問を よろしくお願いいたします。 accessのフォーム上にリストボックスとテキスト ボックスをはりつけ、リストボックスに表示されて いる行が選択されたら、その項目値をテキスト ボックスに表示させようとしています。 しかし、リストボックスのイベント(マウスボタン クリック時や開放時)を使ってみたのですが、 二度クリックしないとテキストボックスに表示され ません。 リストボックスの行が選択されたというイベントが あればいいのですが、見当たりません。 どうすれば、リストボックスで行が選択されたという イベントを捕まえることができるのかご教示お願い いたします。

  • アクセスのリストボックスの複数選択

    リストボックスの設定方法を教えてください。 1画面目にテーブルと連結したリストボックスがあります。 複数選択した情報をSelectedプロパティで取得しています。 次画面にて同じテーブルに連結されているリストボックスを 1画面目と同じ様に選択されている状態にしたいのですが、 方法がわかりません。 選択されている内容だけをリストボックスに表示する方法は 見つけたのですが、同じ状態で選択される方法がわかりません。 ご回答、宜しくお願いします。

  • JavaScriptでリストボックスを選択

    リストボックスに約100個の項目があり、いくつかの項目を選択した状態で初期表示します。 これら約100個の項目には、同じものがありません。 (name="list_box" size="10" multiple) 20~30行目くらいのものが選択されていると、初期表示では1~10行目が表示されるので、選択されていることが分かりません。 そこで、初期表示で20~30行目を表示したいと考えています。 例えば20行目の項目がvalue="aaaa"で、onload時に20行目が一番上にスクロールされている状態にしたいのですが、どのようにJavaScriptを書けばよいでしょうか? 動的なデータを想定しているので、"aaaa"は必ずしも20行目とは限りません。 どうにか、value="aaaa"がリストボックスの一番上に選択されている状態を作りたいと考えています。

  • リストボックスの選択解除

    VBAでフォーム上にリストボックスを置いています。 最初にフォームを表示した時は 何もリストボックスが選択されておらず 値を追加した後に、何かクリックすると 選択した項目が青?色に変わります。 その青色を解除したいのですが(要は選択状態を解除したい) どうやってすればいいのでしょうか? selected(X) = falseとしましたが何も起こりませんでした。 宜しくお願い致します。