php省市区三级联动
效果

步骤
前端:通过ajax请求获取数据,使用了jquery
页面一开始加载所有省份信息 -》当选择省下拉框后触发改变监听时间-change -》当选择市下拉框后触发改变监听时间-change
获取数据后遍历后端返回的数据 -》 $.each(data,function(i,item)){...}
后端:接受请求,操作数据库-查询数据,返回json数据
数据: -》demo.sql -》 省市区的信息
省市区sql.zip
代码
前端:
<div>
省:<select id="provinces"> <option value="">请选择省份</option></select>
市:<select id="citys"><option value="">请选择市</option></select>
区:<select id="countys"><option value="">请选择县</option></select>
</div>
//引入jquery
$(function() {
//页面初始,加载所有的省份
$.ajax({
type: "get",
url: "getGeography.php",
data: {"type":1},
dataType: "json",
success: function(data) {
//遍历json数据,组装下拉选框添加到html中
$("#provinces").html("<option value=''>请选择省</option>");
$.each(data, function(i, item) {
$("#provinces").append("<option value='" + item.province_num + "'>" + item.province_name + "</option>");
});
}
});
//监听省select框
$("#provinces").change(function() {
$.ajax({
type: "get",
url: "getGeography.php",
data: {"pnum": $(this).val(),"type":2},
dataType: "json",
success: function(data) {
//遍历json数据,组装下拉选框添加到html中
$("#citys").html("<option value=''>请选择市</option>");
$.each(data, function(i, item) {
$("#citys").append("<option value='" + item.city_num + "'>" + item.city_name + "</option>");
});
}
});
});
//监听市select框
$("#citys").change(function() {
$.ajax({
type: "get",
url: "getGeography.php",
data: {"cnum": $(this).val(),"type":3},
dataType: "json",
success: function(data) {
//遍历json数据,组装下拉选框添加到html中
$("#countys").html("<option value=''>请选择区</option>");
$.each(data, function(i, item) {
$("#countys").append("<option value='" + item.id + "'>" + item.area_name + "</option>");
});
}
});
});
});
PHP:
//连接数据库
//$conn = ...
$type = isset($_GET['type'])?$_GET['type']:0;//获取请求信息类型 1省 2市 3区
$province_num = isset($_GET['pnum'])?$_GET['pnum']:'440000';//根据省编号查市信息
$city_num = isset($_GET['cnum'])?$_GET['cnum']:'440100';//根据市编号查区信息
switch ($type) {//根据请求信息类型,组装对应的sql
case 1://省
$sql = "SELECT * FROM province";
break;
case 2://市
$sql = "SELECT * FROM city WHERE province_num='{$province_num}'";
break;
case 3://区
$sql = "SELECT * FROM area WHERE city_num='{$city_num}'";
break;
default:
die('no data');
break;
}
$result = mysqli_query($conn, $sql);//执行查询sql
if (mysqli_num_rows($result) <= 0){
die("no data");
}
// 组装数据输出
$rows = array();
while($row = mysqli_fetch_assoc($result)) {
$rows[] = $row;
}
echo json_encode($rows);//返回json数据
php省市区三级联动的更多相关文章
- jQuery省市区三级联动插件
体验效果:http://hovertree.com/texiao/bootstrap/4/支持PC和手机移动端. 手机扫描二维码体验效果: 代码如下: <!DOCTYPE html> &l ...
- 省市区三级联动 pickerView
效果图 概述 关于 省市区 三级联动的 pickerView,我想大多数的 iOS 开发者应该都遇到过这样的需求.在遇到这样的需求的时候,大多数人都会觉的这个很复杂,一时无从下手.其实真的没那么复杂. ...
- JS省市区三级联动
不需要访问后台服务器端,不使用Ajax,无刷新,纯JS实现的省市区三级联动. 当省市区数据变动是只需调正js即可. 使用方法: <!DOCTYPE html><html>< ...
- ajax省市区三级联动
jdbc+servlet+ajax开发省市区三级联动 技术点:jdbc操作数据库,ajax提交,字符拦截器,三级联动 特点:局部刷新达到省市区三级联动,举一反三可以做商品分类等 宗旨:从实战中学习 博 ...
- QQ JS省市区三级联动
如下图: 首先写一个静态的页面: <!DOCTYPE html> <html> <head> <title>QQ JS省市区三级联动</title ...
- 省市区三级联动(二)JS部分简单版
通过对上一篇<省市区三级联动>的学习发现JScript部分省市区的填充代码几乎相同,所以可以写成一个函数. 注意:html部分和chuli.php部分不变 1.下拉列表填充可以写成带参数的 ...
- 从QQ网站中提取的纯JS省市区三级联动
在 http://ip.qq.com/ 的网站中有QQ自己的JS省市区三级联动 QQ是使用引用外部JS来实现三级联动的.JS如下:http://ip.qq.com/js/geo.js <!DOC ...
- 基于ThinkPHP+AJAX的省市区三级联动
练习,就当练习. 省市区三级联动,样式如下图所示: 1,导入两个js文件并且导入数据库文件. 两个js文件分别是jquery-2.1.4.min.js和jquery-1.js,数据库文件,见附件. 2 ...
- java的JCombobox实现中国省市区三级联动
源代码下载:点击下载源代码 用xml存储中国各大城市的数据. xml数据太多了就不贴上了,贴个图片: 要解释xml,添加了一个jdom.jar,上面的源代码下载里面有. 解释xml的类: packag ...
- jquery省市区三级联动
jquery省市区三级联动(数据来源国家统计局官网)内附源码下载 很久很久没有写博了. 今天更新了项目的省市区三级联动数据,更新后最新的海南三沙都有,分享给所有需要的小伙伴们... JQUERY + ...
随机推荐
- skynet 控制台管理使用技巧
skynet 自带了一个控制台服务.能够非常方便获取和调试 skynet 执行数据,并且能够热更新代码,所以.弄明确skynet控制台管理能够让你更好地使用skynet,甚至改进这个控制台服务.以满足 ...
- The 2014 ACM-ICPC Asia Mudanjiang Regional Contest(2014牡丹江区域赛)
The 2014 ACM-ICPC Asia Mudanjiang Regional Contest 题目链接 没去现场.做的网络同步赛.感觉还能够,搞了6题 A:这是签到题,对于A堆除掉.假设没剩余 ...
- Socket 长连接 短连接 心跳 JAVA SOCKET编程
简单解释就是: 短连接:建立连接,发送数据包.关闭连接 长连接:建立连接.发送数据包,发送心跳包,发送数据包,发送心跳包.发送心跳包. ..... 所以又频繁的数据收发的话.短连接会频繁创建TCP连接 ...
- oc 和swift混编的时候打包ipa安装不了
做了一个oc项目.里面实用到swift第三方,真机执行的时候是正常的,用企业级证书打包成ipa之后安装完毕之后闪退.通过导出手机log日志发现错误提示: Dyld Error Message: L ...
- 如何在 webpack 项目中使用绝对路径
react 小白编程 本项目是使用 create-react-app 脚手架构建的react项目 找到 config 配置文件下的 webpack.config.dev.js 和 webpack.co ...
- ROADS - Roads
N cities named with numbers 1 ... N are connected with one-way roads. Each road has two parameters a ...
- Caused by: java.lang.NullPointerException: Attempt to write to field 'int android.app.Fragment.mNextAnim' on a null object reference
原因fragment必须先add(),才能remove(),故remove前先做判空操作 参考:http://www.cnblogs.com/hixin/p/4427276.html
- tflearn alexnet iter 10
他会自己下载数据: # -*- coding: utf-8 -*- """ AlexNet. Applying 'Alexnet' to Oxford's 17 Cate ...
- vs打开wixproj后缀文件
1.在正常情况下vs是无法打开wixproj工程的,能打开也只能是以记事本方式打开该文件本身 2.所以此时需要下载wixtool,安装后即可打开上述类型文件 3.最好也安装好vs对应版本的扩展包 4. ...
- Reward(toposort)
http://acm.hdu.edu.cn/showproblem.php?pid=2647 #include <stdio.h> #include <string.h> #i ...