省级联动(使用ajax实现)
在博客园学习了很多实用的东西,现在该慢慢开始自己写写博客文章, 由于本人水平有限,刚走出校园的小菜鸟,另外,文章在表述和代码方面如有不妥之处,欢迎批评指正。留下你
的脚印,欢迎评论!
有什么问题,可以互相探讨,希望对各位有所帮助。开始讲东西吧
一个现实城市下拉框的界面

html代码:
<table>
<tr>
<td><h5>城市下拉框</h5></td>
<td>
<select id="top" style="width:130px">
<option>请选择省市/其他...</option>
</select>
<select id="center" style=" width:130px">
<option >请选择城市/其他...</option>
</select>
<select id="button" style=" width:130px">
<option>请选择县/区...</option>
</select>
</td>
</tr>
</table>
js代码:我这里使用的jquery操作Dom和ajax,所以要导入jquery脚本,这里就不提供了,到官方网站下载都有
<script type="text/javascript">
$(function() {
// setCity("top", "0");//页面加载时就现实数据库第一个数据,一定要加上
setCity("top", "0");
$("#top").change(function() {
// 当省级改变的时候,让市级和县级文本清空
$("#center option").remove();
$("#button option").remove();
//获得省级的id
var pid=$("#top option:selected").attr("id");
//加载该省级的市级数据
setCity("center", pid);
});
$("#center").change(function() {
//当市级改变的时候,让县级文本清空
$("#button option").remove();
//获取城市的pid
var pid=$("#center option:selected").attr("id");
//加载该省市级的县级数据
setCity("button",pid );
});
});
//selectid:select标签的id,pid数据库省级县级的pid
function setCity(selectid, pid) {
$.ajax({
url : "/code_20150406(Ajax_XStream_Json)/CtiyServlet?pid="+pid,
type : "get",
cache : false,
success : function(res) {
//注意!!!这里必须使用eval(res)函数,否则获取到的json数据无法遍历,无话获取到数据
var arr = eval(res);
//遍历返回的json数据加载到select标签;
$.each(arr, function(key, val) {
$("#" + selectid).append(
" <option id='" + val.tb_AreaId + "'>"
+ val.areaName + "</option>");
});
}
});
};
</script>
Servlet查询数据库的代码:
1.返回json数据
/**
* 收货地址=>显示城市下拉框
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=UTF-8");
//获取省级或市级的pid
int i = Integer.valueOf(request.getParameter("pid"));
//查询数据库数据(我这里是使用是DbUtils获取数据数据,这里可以自身使用的框架来查询数据)
List<tb_Area> list = dao.getbyAreaid(i);
//返回json数据:这里返回的一个JavaBBean的List集合,所以要使用JSONArray.fromObject(list)来转换json数据
response.getWriter().print(JSONArray.fromObject(list));
}
2.javabean代码
public class tb_Area {
private Integer tb_AreaId;
private String areaName;
public Integer getTb_AreaId() {
return tb_AreaId;
}
public void setTb_AreaId(Integer tb_AreaId) {
this.tb_AreaId = tb_AreaId;
}
public String getAreaName() {
return areaName;
}
public tb_Area() {
}
@Override
public String toString() {
return "tb_Area [tb_AreaId=" + tb_AreaId + ", areaName=" + areaName
+ ", areaPid=" + areaPid + "]";
}
public void setAreaName(String areaName) {
this.areaName = areaName;
}
public Integer getAreaPid() {
return areaPid;
}
public void setAreaPid(Integer areaPid) {
this.areaPid = areaPid;
}
private Integer areaPid;
}
数据库
http://pan.baidu.com/s/1gdw1Osj点击链接下载,这里是txt文件,导入数据库是用的是逗号分隔符,注意数据库子字段的命名即如图

运行下成功页面

好了 ,搞定了,要是有什么问题欢迎评论!!!
省级联动(使用ajax实现)的更多相关文章
- MVC实现省级联动
前言 省级联动的效果,网上现成的都有很多,各种JS实现,Jquery实现等等,今天我们要讲的是在MVC里面,如何更方便.更轻量的实现省级联动呢? 实现效果如下: 具体实现 如图所示,在HTML页非常简 ...
- jQuery写省级联动列表,创造二维数组,以及如何存/调用二维数组中的数据
jQuery写省级联动列表,创造二维数组来存放数据,然后通过each来遍历调用,通过creatTxtNode创建文本节点,通过createElement创建标签option,在通过append将文本写 ...
- 三级联动(ajax)
<body> <div id="zhuti"></div> </body><script type="text/ja ...
- MVC二级联动使用$.ajax方法获取后端返回的字符串
在"MVC二级联动使用$.getJSON方法"中使用$.getJSON()获取后端返回的JSon. 本篇使用jQuery的$.ajax()获取后端返回的字符串,实现二级联动. ...
- 多级联动系列——ajax调用XML实现三级联动
ajax 使用起来特别的方便,再也不操心浏览器兼容问题了.用ajax调用XML页面中的内容,来生成三级联动,OK废话不多说,跟着我一步步写吧. 首先写一个XML文件.data.xml <?xml ...
- 模态框的理解 ,jQ: loading,进度条, 省级联动 表单验证 插件
模态框: 打开一个弹框 不关闭它就不能做框外的操作 必须关闭或弹出另外的弹框 加载延迟loading + 进度条只要有请求 就处理一下监控ajax 全局事件jquery: $('#box').ajax ...
- ComboBox联动 (AJAX BS实现)
//从webservice中取数据ajax Ext.Ajax.request({ url: 'WebService.asmx/GetComboxFi ...
- 三级联动(ajax同步)
html <div id="frame"></div> js $(function(){ //拼接省市区下拉框 var str = `<select ...
- 省市联动初探AJAX操作数据
主要学习代码: List.html <script type="text/javascript"> function GetXhr() { return new XML ...
随机推荐
- 简单理解——面向切面编程(AOP)
在传统的编写业务逻辑处理代码时,我们通常会习惯性地做几件事情:日志记录.事务控制及权限控制等,然后才是编写核心的业务逻辑处理代码.当代码编写完成回头再看时,不禁发现,扬扬洒洒上百行代码中,真正用于核心 ...
- [TypeScript] Dictionary范例
[TypeScript] Dictionary范例 Playground http://tinyurl.com/o7czcxo Samples class Dictionary { [index: s ...
- 【HTML5】浅析HTML5应用程序缓存(ApplicationCache)
一.为什么需要Web应用程序缓存 在移动互联网时代,设备终端位置不再固定,依赖无线信号,网络的可靠性变得降低,比如坐在火车上,过了一个隧道(15分钟),便无法访问网站,这对于web的伤害是很大的 ...
- array's filter
var arr = [ { id: 15 }, { id: -1 }, { id: 0 }, { id: 3 }, { id: 12.2 }, { }, { id: null }, { id: NaN ...
- iOS:JSON格式字符串转字典,字典转JSON格式字符串
在iOS开发中,和服务器交互中,经常用到字典和JSON格式字符串相互转换. 代码如下: 1.JSON格式字符串转字典 + (NSDictionary *)dictionaryWithJsonStrin ...
- .Net关闭数据库连接时判断ConnectionState为Open还是Closed?
两种写法: if (conn.State == System.Data.ConnectionState.Open) { conn.Close(); ...
- Windows下修改Android手机的hosts
Windows下修改Android手机的hosts 1.首先,手机是Root过的. 2.连接手机和电脑, adb shell 进入命令行. 3.获取root用户权限: su -root 4.不知道为何 ...
- Android 中的编码与解码
前言:今天遇到一个问题,一个用户在登录的时候,出现登录失败.但是其他用户登录都是正常的,经过调试发现登录失败的用户的密码中有两个特殊字符: * .# . 特殊符号在提交表单的时候,出现了编码不一样的 ...
- iOS UIProgressView控件用法
IOS中进度条控件的用法总结. 进度条控件是IOS开发中一个简单的系统控件,使用总结如下: 初始化一个进度条: - (instancetype)initWithProgressViewStyle:(U ...
- iOS 边框显示不完全
设置边框为1以上就可以了,如果不觉得宽的话!