<转>jquery+php+mysql实现Ajax省市县三级联动
今天闲来无事,随手写个jquery+php+mysql来实现的省市县的三级联动。这个功能不论是对学习还真实的项目开发都是很有用的,所以在此分享给大家,希望对广大朋友有所帮助!
更多精彩内容: http://www.code4apk.com
我把大致思路说下吧,具体的我就不多说了。
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;
最终结果如下:
最后有点要说明就是,代码中用到一些jquey,php配置文件和php数据库链接类,并没有在文章中显示,请下载完整代码!
更多精彩内容: http://www.code4apk.com
posted on 2015-10-23 21:56 hahahahahai12 阅读(282) 评论(0) 收藏 举报
浙公网安备 33010602011771号