JSP省市区三级联动下拉选
来源:互联网 发布:算法流程图怎么画 编辑:程序博客网 时间:2024/05/22 05:22
JSP+Jquery+Oracle实现省市区三级联动下拉选菜单
自己搞了一下午,刚开始觉得还有点麻烦,不过搞过一遍之后就觉得简单了,供大家互相学习,具体代码如下:
1.jsp页面代码:
</pre><pre name="code" class="html"><tr> <td>所在地:</td> <td> <select class="select" id="province_code" name="province_code" onchange="getCity()"> <option value="">请选择</option> </select> <select class="select" id="city_code" name="city_code" onchange="getArea()"> <option value="">请选择</option> </select> <select class="select" id="area_code" name="area_code"> <option value="">请选择</option> </select> </td> </tr>
2.js代码
<script type="text/javascript"> /*加载省下拉选*/ $(function () { $.ajax({ type: "post", url: "${ctx}/shop/area/getProvince", success: function (data) { for (var i = 0; i < data.length; i++) { $('#province_code').append("<option value='" + data[i].id + "' >" + data[i].aName + "</option>"); } }, error: function () { alert("加载省失败"); } }); }); /*加载市下拉选*/ function getCity() { var id = $("#province_code").val(); $("#city_code").empty(); $("#area_code").empty(); $.ajax({ type: "post", url: "${ctx}/shop/area/getCity", data: {"id": id}, success: function (data) { $('#city_code').append("<option value='' selected='selected' >" + '请选择' + "</option>"); $('#area_code').append("<option value='' selected='selected' >" + '请选择' + "</option>"); for (var i = 0; i < data.length; i++) { $('#city_code').append("<option value='" + data[i].id + "' >" + data[i].aName + "</option>"); } }, error: function () { alert("加载市失败"); } }); } ; /*加载地区下拉选*/ function getArea() { var id = $("#city_code").val(); $("#area_code").empty(); $.ajax({ type: "post", url: "${ctx}/shop/area/getArea", data: {"id": id}, success: function (data) { $('#area_code').append("<option value='' selected='selected' >" + '请选择' + "</option>"); for (var i = 0; i < data.length; i++) { $('#area_code').append("<option value='" + data[i].id + "' >" + data[i].aName + "</option>"); } }, error: function () { alert("加载区失败"); } }); }3.dao层文件
public interface AreaDao {List<Area> queryAreas(Integer pid);Area queryAreasInfo(Integer id);public List<Area> queryCity(Integer id);}4.Area实体类
public class Area {private Integer id;private String aName;private Integer pid;private Integer status;public Integer getId() {return id;}public Integer getPid() {return pid;}public Integer getStatus() {return status;}public void setId(Integer id) {this.id = id;}public void setPid(Integer pid) {this.pid = pid;}public void setStatus(Integer status) {this.status = status;}public String getaName() {return aName;}public void setaName(String aName) {this.aName = aName;}@Overridepublic String toString() {return "Area [id=" + id + ", aName=" + aName + ", pid=" + pid+ ", status=" + status + "]";}}5.Service层
@Service@Transactional(readOnly = true)public class AreasService {@Resourceprivate AreaDao areasDao;/** * 通过pid查询Areas */public List<Area> queryAreas(Integer pid) {return this.areasDao.queryAreas(pid);}public Area queryArea(Integer id){return this.areasDao.queryAreasInfo(id);}}6.Controller层
@RequestMapping("/shop/area")@Controllerpublic class AreaController { @Autowired private AreasService areasService; @RequestMapping(value="getProvince" ,method = RequestMethod.POST) @ResponseBody public List<Area> getProvince(){ List<Area> areas=areasService.queryAreas(0); return areas; } @RequestMapping(value="getCity" ,method = RequestMethod.POST) @ResponseBody public List<Area> getCity(Integer id){ List<Area> areas=areasService.queryAreas(id); return areas; } @RequestMapping(value="getArea" ,method = RequestMethod.POST) @ResponseBody public List<Area> getArea(Integer id){ List<Area> areas=areasService.queryAreas(id); return areas; }}7.Mapper.xml文件
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.***.location.dao.AreaDao" > <select id="queryAreas" resultType="Area" > SELECT * FROM area WHERE pid=#{pid} </select> <select id="queryAreasInfo" resultType="Area" > SELECT * FROM area WHERE id=#{id} </select></mapper>
8.Oracle数据库结构
省市区在一个表 ,表名是AREA ,主键是ID ,省的PID=0 , 市级的PID=省的ID,区级的PID=市级的ID
如:
ID ANAME PID
100034 河南省 0
100101 郑州市 100034
100102 濮阳市 100034
111111 中原区 100101
111112 金水区 100101
111113 高新区 100101
0 0
- JSP省市区三级联动下拉选
- jsp+jquery实现省市区三级联动下拉
- 三级联动 省市区下拉列表
- 省市区三级联动下拉选框---具体功能实现
- AJAX版省市区三级联动下拉框
- Ajax三级联动下拉选择省市区
- AJAX省市区三级联动下拉列表实现 JAVA开发
- AJAX省市区三级联动下拉列表实现 JAVA开发
- 前端省市区(县)三级联动下拉框
- js省市区三级联动
- 省市区三级联动
- 省市区三级联动
- 省市区三级异步联动
- PHP、省市区三级联动
- js省市区三级联动
- XML省市区三级联动
- 三级联动(省市区)
- jQuery省市区三级联动
- 智力题
- 【bzoj1088】 [SCOI2005]扫雷Mine
- 深度探索c++对象模型——读书笔记(二)
- Qualcomm thermal的介绍
- Android原生API搞定圆角、圆形图片
- JSP省市区三级联动下拉选
- 变量作用域
- 10052---内存管理与垃圾收集
- 从应用到内核第一章记录
- 有关synchronized同步的问题
- linux tcp
- Mysql_学习记录
- 关于(function(){})()
- Android Studio中利用JavaDoc生成项目API文档