mysql jsp省市区三级联动_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集合存市,但是市属于哪个省,也应该设计省对象记住市

事例演示:

bb846c3f6adf1c724ac1d0f8bb80b29d.png

二,核心代码:

首先是异步显示省的javabean:

public classProvince {privateString provinceid;privateString province;private ListcityList;publicString getProvinceid() {returnprovinceid;

}public voidsetProvinceid(String provinceid) {this.provinceid =provinceid;

}publicString getProvince() {returnprovince;

}public voidsetProvince(String province) {this.province =province;

}public ListgetCityList() {returncityList;

}public void setCityList(ListcityList) {this.cityList =cityList;

}

}

省servlet:==================================json转换==============================

public voiddoGet(HttpServletRequest request, HttpServletResponse response)throwsServletException, IOException {

response.setContentType("text/html;charset=utf-8");/** 1.得到dao所有的省

* 2.将list转换成json

* 3.发送给客户端*/Dao dao=newDao();

List plist=dao.getAllProvince();

String json=JSONArray.fromObject(plist).toString();

response.getWriter().print(json);

}

异步显示省:jsp==========这个只是ajax实现省份的代码,全部代码在后面:(重点:如何实现ajax+json衔接)

functioncreateXMLHttpRequest(){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.οnlοad= function() {/*一、发送异步请求,页面加载完成,每个省份生成一个option添加到,下*/

//1.得到核心对象

var xmlHttp=createXMLHttpRequest();//2.打开链接

xmlHttp.open("GET","",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的实际值赋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);

}

}

};

};

省市区三级联动

${test}

省:

===请选择===

市:

===请选择===

区(县):

===请选择===

三、省市区三级联动数据库:

四、完整代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值