1、第一步建立一個html頁面的,放置省、市、縣三個select選擇框,代碼如下:
- <!DOCTYPE html>
- <html>
- <head>
- <title></title>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <script src="./js/jquery-1.8.3.min.js" type="text/javascript"></script>
- <script type="text/javascript">
- $(document).ready(function() {
- // 加載所有的省份
- $.ajax({
- type: "get",
- url: "region_action.php", // type=1表示查詢省份
- data: {"parent_id": "1", "type": "1"},
- dataType: "json",
- success: function(data) {
- $("#provinces").html("<option value=''>請選擇省份</option>");
- $.each(data, function(i, item) {
- $("#provinces").append("<option value='" + item.region_id + "'>" + item.region_name + "</option>");
- });
- }
- });
- $("#provinces").change(function() {
- $.ajax({
- type: "get",
- url: "region_action.php", // type =2表示查詢市
- data: {"parent_id": $(this).val(), "type": "2"},
- dataType: "json",
- success: function(data) {
- $("#citys").html("<option value=''>請選擇市</option>");
- $.each(data, function(i, item) {
- $("#citys").append("<option value='" + item.region_id + "'>" + item.region_name + "</option>");
- });
- }
- });
- });
- $("#citys").change(function() {
- $.ajax({
- type: "get",
- url: "region_action.php", // type =2表示查詢市
- data: {"parent_id": $(this).val(), "type": "3"},
- dataType: "json",
- success: function(data) {
- $("#countys").html("<option value=''>請選擇縣</option>");
- $.each(data, function(i, item) {
- $("#countys").append("<option value='" + item.region_id + "'>" + item.region_name + "</option>");
- });
- }
- });
- });
- });
- </script>
- </head>
- <body>
- <div>
- 省份:
- <select id="provinces">
- <option value="">請選擇省份</option>
- </select>
- 市:
- <select id="citys">
- <option value="">請選擇市</option>
- </select>
- 縣:
- <select id="countys">
- <option value="">請選擇縣</option>
- </select>
- </div>
- </body>
- </html>
第二步:建立一個處理請求的PHP文件,如下:
- <?php
- //封裝的數據操作類
- require_once './Config/config.php';
- require_once './plugins/DBHelper.php';
- $type = isset($_GET["type"]) ? $_GET["type"] : "";
- $parent_id = isset($_GET["parent_id"]) ? $_GET["parent_id"] : "";
- // 鏈接數據庫代碼(沒有源文件,直接寫個鏈接數據的代碼根據條件去查地區表就可以了)
- if ($type == "" || $parent_id == "") {
- exit(json_encode(array("flag" => false, "msg" => "查詢類型錯誤")));
- } else {
- // 鏈接數據庫
- $db = new DBHelper("localhost", "root", "root", "region");
- $provinces = $db->getSomeResult("global_region", "region_id,region_name", "parent_id={$parent_id} and region_type={$type}");
- $provinces_json = json_encode($provinces);
- exit($provinces_json);
- }
- ?>
第三步:其實這一步也是前提,就是要在mysql數據庫中建一個地區表,此表結構簡單,但是數據很多,大概3千多條,先列出表結構,具體數據請看代碼附件。
- CREATE TABLE `global_region` (
- `region_id` smallint(5) unsigned NOT NULL AUTO_INCREMENT,
- `parent_id` smallint(5) unsigned NOT NULL DEFAULT '0',
- `region_name` varchar(120) NOT NULL DEFAULT '',
- `region_type` tinyint(1) NOT NULL DEFAULT '2',
- PRIMARY KEY (`region_id`),
- KEY `parent_id` (`parent_id`),
- KEY `region_type` (`region_type`)
- ) ENGINE=MyISAM AUTO_INCREMENT=3409 DEFAULT CHARSET=utf8;
最終結果如下: