こんにちは。
そのような動作をするUIを作成するならば、私でしたら、以下のようなタスクで
進めると思います。
(1) サーバー側(PHPとMySQLなど何らかのDB)の設計・開発
・以下の2つのテーブルを作成
- 都道府県マスタ
- 市区町村マスタ
・テーブルへのデータ投入
⇒ 最新の市区町村データをどこから、どのようにして持ってくるのか要検討
・以下のようなAPIを設計、開発
リクエスト: GET http://サーバーのドメイン/my-api/prefectures/<都道府県ID>
(※URLは、例えばのサンプルです。)
レスポンス: 指定した都道府県にある市区町村の一覧をJSONで返す。
(指定した都道府県コードの都道府県が無ければ 404 NOT FOUND)
(2) UI(画面)側の開発
ざっくり、以下のような仕様を想定
・都道府県のセレクトボックスは、option のvalue を都道府県コードにする。
・このセレクトボックスでchangeイベントが発生したら、option の値を取得して
(1)のAPIのURLを作成して、AJAXで呼ぶ。
・返ってきたJSONを何らかの要素に反映して表示する。
上記のような感じです。
蛇足ですが、(1)で作成するサーバー側APIの
http://サーバーのドメイン/my-api/prefectures/<都道府県ID>
のようなURLを設計するときに、自分が手本にしている
ガイド本が以下です。
apigee社:WEB API Design
以上ご参考になれば幸いです。
補足:
上記に書いたものをイメージして開発を進めれば、いったんは出来上がると思うのですが、
市区町村には統廃合があるので、(このシステムが何らかの実際の業務で使うものでしたら)
市区町村テーブルをアップデートする何らかの仕組みが必要になってくると思います。