javaweb--json--ajax--mysql实现省市区三级联动(附三级联动数据库)
在web中,实现三级联动很常见,尤其是利用jquery+json。但是从根本上来说jquery并不是最能让人容易理解的,接下来从最基本的javascript开始,实现由javascript+json+mysql实现三级联动:
一、涉及到的知识点:
1.ajax:(异步的javascript and xml)
1.简单来说就是不用刷新整个页面实现局部页面的动态改变:也就是不用重新发布工程而做到改变想要改变的数据。
2.实现异步的四个步骤:
1.得到核心对象
2.打开链接
3.发送
4.添加监听
2.json :用到的主要方法:
JSONArray.fromObject(object);将list数组转为json
JSONObject.fromObject(object);将javabean转为json
tostring();得到json串
3.javabean基于数据库的设计(算不上什么方法只能说是对数据库以及java面向对象的理解):
一对多,多对一,一对一表之间的设计关系,面向对象是关键:一个省有多个市,因此省bean中可以有list集合存市,但是市属于哪个省,也应该设计省对象记住市
事例演示:

二,核心代码:
首先是异步显示省的javabean:
public class Province {
private String provinceid;
private String province;
private List<City> cityList;
public String getProvinceid() {
return provinceid;
}
public void setProvinceid(String provinceid) {
this.provinceid = provinceid;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public List<City> getCityList() {
return cityList;
}
public void setCityList(List<City> cityList) {
this.cityList = cityList;
}
}
省servlet:==================================json转换==============================
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
/*
* 1.得到dao所有的省
* 2.将list<Province>转换成json
* 3.发送给客户端
*/
Dao dao=new Dao();
List<Province> plist=dao.getAllProvince();
String json=JSONArray.fromObject(plist).toString();
response.getWriter().print(json); }
异步显示省:jsp==========这个只是ajax实现省份的代码,全部代码在后面:(重点:如何实现ajax+json衔接)
<script type="text/javascript">
function createXMLHttpRequest(){
try {
return new XMLHttpRequest();//大多数浏览器
} catch (e) {
try {
return new ActiveXObject("msxml2.XMLHTTP");//IE6
} catch (e) {
try {
return new ActiveXObject("Micorsoft.XMLHTTP");//IE5甚至更早
} catch (e) { }
}
}
}
window.onload = function() { /*
一、发送异步请求,页面加载完成,每个省份生成一个option添加到,<select id="province">下
*/
//1.得到核心对象
var xmlHttp=createXMLHttpRequest();
//2.打开链接
xmlHttp.open("GET","<c:url value='/servlet/ProvinceServlet'/>",true);//要实现这个必须导入taglib标签体
//3.发送
xmlHttp.send(null);
//4.添加监听 xmlHttp.onreadystatechange=function(){
if (xmlHttp.readyState==4 && xmlHttp.status==200){
var proArry = eval("(" + xmlHttp.responseText + ")");//执行json字符串--得到数组
//遍历数组
for ( var i = 0; i < proArry.length; i++) {
var pro = proArry[i];//得到每个pro对象
var optionEle = document.createElement("option");//创建<option>元素
//给option的实际值赋pro.provinceid(省id) 而不是pro.province(省名称)
optionEle.value = pro.provinceid;
var textNode = document.createTextNode(pro.province);
optionEle.appendChild(textNode); //最后:把option元素添加到select元素中 document.getElementById("province").appendChild(optionEle);
}
}
};
};
</script>
<!--body部分的设计-->
<body >
<h1>省市区三级联动</h1>${test}
省:
<select name="province" id="province">
<option>===请选择===</option>
</select>
市:
<select name="city" id="city">
<option>===请选择===</option>
</select>
区(县):
<select name="area" id="area">
<option>===请选择===</option>
</select> </body>
三、省市区三级联动数据库:
https://files.cnblogs.com/files/wangsr-suc/Province_city_areas.zip
四、完整代码
javaweb--json--ajax--mysql实现省市区三级联动(附三级联动数据库)的更多相关文章
- 使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能
使用PHP+MySql+Ajax+jQuery实现省市区三级联动功能 要求:写一个省市区(或者年月日)的三级联动,实现地区或时间的下拉选择. 实现技术:php ajax 实现:省级下拉变化时市下拉区下 ...
- jQuery读取json文件,实现省市区/县(国标)三级联动
最近做一个微信项目,需要用户填写所在的省市区/县,决定使用jQuery读取json文件来实现省市区/县的联动. 其实很简单,jQuery文档也有详细解释: 代码如下: html <table w ...
- 项目总结01:JSP mysql SpringMvc下中国省市县三级联动下拉框
JSP mysql SpringMvc下中国省市县三级联动下拉框 关键词 JSP mysql数据库 SpringMvc ajax Controller层 Service层 中国地区 省 ...
- 原生JS实现省市区(县)三级联动选择
原文地址→看过来 写在前面 前段时间写一个关于天气的东西,里面的省市区(县)城市选择让我很头疼,在网上搜索出来大都是借助插件或者第三方库,感觉这样做代码会很重,所以索性就把几种城市选择的方式实现一遍, ...
- Django ajax MYSQL Highcharts<1>
Another small project with django/Ajax/Mysql/Highcharts. 看下效果图 - delivery dashboard .嘿嘿 是不是还蛮好看的. 废 ...
- JSON & Ajax
Ajax是异步JavaScript和XML是用来在客户端作为一组相互关联的Web开发技术,以创建异步Web应用程序. Ajax模型,Web应用程序可以发送数据和检索数据从一个服务器,而不干扰现有的页面 ...
- MySQL 中国省市区SQL表数据
MySQL 中国省市区SQL表数据 1.查省SELECT * FROM china WHERE china.Pid=02.查市SELECT * FROM chinaWHERE china.Pid= ...
- 超全面的JavaWeb笔记day15<mysql数据库>
1.数据库的概述 2.SQL 3.DDL 4.DML 5.DCL 6.DQL MySQL 数据库 1 数据库概念(了解) 1.1 什么是数据库 数据库就是用来存储和管理数据的仓库! 数据库存储数据的优 ...
- 无法远程连接mysql,连接后也没有权限创建数据库
问题现象:无法远程连接mysql,连接后也没有权限创建数据库 问题原因: MySql-Server 出于安全方面考虑只允许本机(localhost, 127.0.0.1)来连接访问. 这对于 Web- ...
- MySQL执行原理,逻辑分层、更改数据库处理引擎
MySQL执行原理,逻辑分层.更改数据库处理引擎 作者:Stanley 罗昊 [转载请注明出处和署名,谢谢!] 用了那么长时间的MySQL,sql语句相信早已烂熟于心,于是,我就试着去了解它的执行原理 ...
随机推荐
- JavaScript(Two)
innerHtml xx.innerHtml 读取元素内的所有Html内容 xx.innerHtml = 新的值 替换元素内的所有Html内容 JS中不予许出现"-"; font- ...
- 转:如何利用已有的切片文件生成TPK
Tpk是ArcGIS 10.1即将推出的一种新的数据文件类型,主要是用于将切片文件打包形成离线地图包.Tpk可以在ArcGIS Runtime中作为切片底图被加载.在ArcGIS 10.1中Tpk的生 ...
- 讲座: conversation
一, Zhouming MSRA NLP group NLP 2.0 attention model 二,Yan Rui 一, retrived based-conversation system t ...
- matlab练习程序(弧形、圆柱投影的复原)
前一段介绍了从矩形图像到圆柱的正向投影,看这里和这里.今天介绍如何从已经投影的图像反映射到原图像上. 本来此种变换一定是需要数学公式的,不过这里只是用了一个很简单的方式来完成反映射. 具体就把每一列有 ...
- AOP的实现
AOP基于xml配置方式实现 Spring基于xml开发AOP 定义目标类(接口及实现类) /** * 目标类 */ public interface UserService { //业务方法 pub ...
- Hadoop ->> Hadoop是什么?
Hadoop是什么? 1)Hadoop是一个分布式计算平台,程序员可以在不需要知道底层结构的情况下实现集群并行运算: 2)Hadoop不只是一个软件或者系统,它代表的是一个生态圈,一个做大数据分析计算 ...
- 两种计算Java对象大小的方法
之前想研究一下unsafe类,碰巧在网上看到了这篇文章,觉得写得很好,就转载过来.原文出处是: http://blog.csdn.net/iter_zc/article/details/4182271 ...
- Selenium2学习(六)-- 定位神器CSS
前言 大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求.css定位往往被忽略掉了,其实css定位也有它的价值,css定位更快,语法更简洁.这一篇css ...
- SQA计划与测试规程
长大一条龙之SQA计划与测试规程 一.SQA计划 1.软件工程 我们之进行开发之前,在弄完需求分析的前提下,进行了软件一些列的建模和评估,我们建立了基于类的模型图类图,基于场景的模型图流程图,再对这些 ...
- IOS 获取更多的设备信息
● 如果想获得更多的设备信息,比如 ● 设备型号.CPU情况.内存使用情况.硬盘使用情况 ● 是否越狱.装了哪些传感器.当前运行的进程 ● ... ... ● 有2种方法获取更多的设备信息 ...