- ベストアンサー
リストボックスで選択してさらにリストボックスで選択
都道府県のリストボックスを作って、たとえば北海道を選択したら北海道の市町村が出てくるようなのを作りたいのですが、やり方がわかりません。。 どうしたらいいですか?
- みんなの回答 (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)
こんにちは 携帯サイトでの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"; 動作確認はしていないので記述ミスがあるかもしれないですけど・・・ 作り方の参考になれば・・・
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
郵便番号と都道府県のデータは総務省郵便局のホームページからダウンロードしてください。 それをCGIで扱えるように編集する必要があります。 (編集にはMicrosoftAccessやFileMakerProなど、基本的なデータベースの知識があると楽です。) 都道府県一覧を表示 -> 都道府県を選択して送信-> 選択した都道府県とそこに属する群市町村の一覧表示 JAVAやJavaScriptを使う必要はありません。 CGIの内部はデータベースを勉強してください。 データベースの基本だけで処理出来ますから。 > 都道府県入力後、市町村が出てくるのは見たことがありません。 都道府県+群市町村から郵便番号を検索するページならあります。(郵便局のサイトとか) 通販サイトなどで郵便番号がわからない人向けの入力支援は多いです。 JavaScript解説サイトのAjaxのサンプルは、 郵便番号から住所の正引きを作ったら、逆引きまで作って公開はしないでしょう。(面倒だし) 自分も練習用に作りましたが、正引きすら公開してません(面倒だし(笑))
補足
データベースの作り方っていうのが初めてでやったことないのですが、とりあえず総務省郵便局からダウンロードはやってみました。 できるかどうかわからないですけど、ネットで検索しながらデータベースを頑張ってとりあえず覚えてみます! ありがとうございました!
- maura
- ベストアンサー率46% (48/104)
郵便番号入力したら都道府県市町村が出てくるのは、 見たことがありますが 都道府県入力後、市町村が出てくるのは見たことがありません。 もし作って公開したらすごいですよ。 とりあえず 手順を 1.都道府県と市町村のデータを収集する。 Googleで検索してみましたが、まさにこれ!っと言うものがなかったので、手作業で作成することになるかも。 2.リストボックスを選択したら、別のリストボックスの内容が変わる方法を調べ作成する (1) JavaScriptでリストボックスを変更する ※携帯サイトでは不可能な方法です。 (2) リストボックスを選択したら onchenge イベントでsubmit し 市町村のリストボックスを生成し表示する 1番目のデータ収集が面倒なだけでいたって簡単だと思います。 がんばってください。
補足
やっぱり携帯サイトではかなり不可能ですよね・・・ 自分もいろいろ考えたんですけど連動するって見た事なくて。。 すいませんわかりました!ありがとうございます!
- akuhijrwq
- ベストアンサー率35% (381/1064)
http://d.hatena.ne.jp/sato-shi/20061214/p1 http://www.gac.jp/article/index.php?stats=question&category=10&id=19109&command=msg http://oshiete1.goo.ne.jp/kotaeru.php3?q=976858
補足
携帯サイトなので、JAVAじゃなくてCGIで行いたいんですけどこれでできますか?
補足
北海道<> 青森<> ・ ・ などありますが、<>のなかにはなにを入れたらいいですか? 旭川<> 札幌<> ・ ・ もなんですが、北海道選択時にこれが連鎖するにはどう入れたらいいでしょうか?