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 + ...
随机推荐
- Java数组备忘录
前言 近期用Java做ACM题目的时候,常常忘记数组怎样实现静态初始化,所以这里记录一下Java数组使用的常识. Java数组常识 数组在Java中是一个对象,数组实例须要通过new操作符进行创建. ...
- 【打CF,学算法——二星级】CF 520B Two Buttons
[CF简单介绍] 提交链接:Two Buttons 题面: B. Two Buttons time limit per test 2 seconds memory limit per test 256 ...
- 【一】注入框架RoboGuice使用:(A brief example of what RoboGuice does)
在我们平时开发Android项目的时候比如常常须要使用各种View控件,然后进行声明.findViewById.而且进行强转.每次都要写这种代码就显得很繁琐,而且easy出错哦.那么针对这种情况且不限 ...
- JavaScript的原生引用类型
引用类型是一种数据结构,用于将数据和功能组织在一起,也常称做类.ECMAScript从技术上说是一门面向对象的语言.但它不具备传统的面向对象语言所支持的类和接口等基本结构. Object类型 大多数引 ...
- mst
https://www.zybuluo.com/ysner/note/1245941 题面 给一个\(n\)点完全图,点权均小于\(2^m\).定义边权等于两端点点权的与和(即\(a_i\&b ...
- consul备份还原导入导出
工作中要保证生产环境部署的consul的集群能够安全稳定地对外提供服务,即使出现系统故障也能快速恢复,这里将讲述部分的备份还原操作及KV的导入导出操作. 备份与还原 需要备份的主要有两类数据:cons ...
- Linux必知必会的目录结构
1.目录结构 /bin 二进制文件 命令 /sbin 超级命令 只有root用户可以使用 /boot 系统的引导文件 系统内核 /dev 设备文件 光盘 硬盘分区 /etc 系统配置文件 /home ...
- 入门activiti-------1简单运行
1.下载原料 2.放置位置 3.运行 4.成功页面和测试数据
- php字符串读取函数
function cc_msubstr($str, $length, $start=0, $charset="utf-8", $suffix=true){ if(function_ ...
- 异常强大的Markdown编辑插件-Markdown Preview Enhanced
最近使用Markdown写作,了解到以下这些Markdown写作工具 MaHua 在线markdown编辑器 百度搜索Markdown时,它排在非常靠前的位置 马克飞象- 专为印象笔记打造的Markd ...