AjAX+SSH实现省份下拉菜单
来源:互联网 发布:软件流程图模板 编辑:程序博客网 时间:2024/05/24 03:24
java环境下实现省份下拉菜单,直接上代码:
Jsp页面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%><% String path = request.getContextPath(); String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path;%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1" /><title>中介门店注册</title><link rel="stylesheet" type="text/css" href="static/css/messageProtect.css" /><link rel="stylesheet" type="text/css" href="static/css/reset.css" /><link rel="stylesheet" type="text/css" href="static/lib/laydate/need/laydate.css" /><script type="text/javascript" src="static/js/jquery-3.1.1.min.js"></script><script type="text/javascript" src="static/lib/laydate/laydate.js"></script><script src="static/js/city2.js"></script><script type="text/javascript" src="static/js/citySelect2.js"></script><script type="text/javascript" src="static/js/messageProtect.js"></script><script type="text/javascript" src="static/js/plugIn.js"></script><script type="text/javascript" src="static/js/jquery.validate.js"></script><!-- 测试使用 --><script type="text/javascript"> $(document).ready(function(){ //省市区ajax请求,首先利用ajax获取省份,然后通过省份获取市和区。 $("#province").change( var pId = $("#province").val();//获取dom中通过后台获取的省份 $("#market").empty(); $.post("menu_list_city_area",//使用post请求方式 { "shengOrShi":pId //将获取的省份传给后台 }, function(data){ //回调函数 var data = eval('('+ data +')'); for(var i=0;i<data.root.length;i++){ $("<option value='"+data.root[i].cityId+"'>"+data.root[i].cityName+"</option> ").appendTo($("#market")) //将返回的市添加到标签中 } changeMarket();//调用通过市查询区的函数 }); }) function changeMarket(){ //通过市查询区 var pId = $("#market").val(); //获取 $("#area").empty(); $.post("menu_list_city_area", //获取后台的区 { "shengOrShi":pId //将市传过去 }, function(data){ var data = eval('('+ data +')'); for(var i=0;i<data.root.length;i++){ $("<option value='"+data.root[i].cityId+"'>"+data.root[i].cityName+"</option> ").appendTo($("#area")); } }); } $("#market").change(function(){ changeMarket(); }) }); </script></head><body> <div class="main-content"> <div class="basic-information"> <strong> 中介门店注册</strong> <form class="form-box" id="form-box" action="shop_register" method="post" enctype="multipart/form-data"> <label class="form-label">所在地<b>*</b></label> <select id="province" name="province" class="form-input file-pic"> <option value="">请选择</option> <c:forEach var="p" items="${provinces}"> <option value="${p.cityId }">${p.cityName }</option> </c:forEach> </select> <select id="market" name="market" class="form-input file-pic"> <option value="">请选择</option> </select> <select id="area" name="area" class="form-input file-pic"> <option value="">请选择</option> </select> </div> <div class="btn"> <input type="submit" class="btn1" value="申请加盟"> <font color="red"> ${data}</font> </div> </form> </div> </div></body></html>
Controller层:
这段代码是当请求这个jsp页面的时候将所有的省份传给前台页面的:
/** * 当用户点击首页门店注册进行跳转 * @return */ @RequestMapping("/shop_regs") public String shopReg(Model model){ List<CountryProvinceInfo> findAllProvince = houseService.findAllProvince(); //通过service层方法获取省份List model.addAttribute("provinces", findAllProvince);//传给前台页面 return "login/shop_regs"; }
这个Controller是ajax异步获取后台数据的:
/** *市区联动动态菜单 * @return */ @ResponseBody @RequestMapping("/menu_list_city_area") public void getCityAreaMenu(String shengOrShi) { List<Map<String, String>> lmList = houseService.findCityAreaByShi(shengOrShi); this.outListString(lmList); }
Service层代码:
@Override //加载所有省 public List<CountryProvinceInfo> findAllProvince() { List<CountryProvinceInfo> allProvince = baseDao.findByHql("from CountryProvinceInfo where cityLevel='省'"); return allProvince; }
/** *市区联动动态菜单 * @return */ @Override public List<Map<String, String>> findCityAreaByShi(String shengOrShi) { String hql = "from CountryProvinceInfo cp where cp.upCityId = '" + shengOrShi + "'"; List<CountryProvinceInfo> cpList = baseDao.findByHql(hql); List<Map<String, String>> lmList = new ArrayList<>(); if (cpList.size()>0) { for (CountryProvinceInfo countryProvinceInfo : cpList) { Map<String,String> cityMenu = new HashMap<>();// String cityName = countryProvinceInfo.getCityName();// String cityId = countryProvinceInfo.getCityId(); cityMenu.put("cityId", countryProvinceInfo.getCityId()); cityMenu.put("cityName", countryProvinceInfo.getCityName()); lmList.add(cityMenu); } } else { String shiHQL = "from CountryProvinceInfo cp where cp.cityId = '"+shengOrShi+"'"; CountryProvinceInfo cp = (CountryProvinceInfo) baseDao.loadObject(shiHQL); Map<String,String> cityMenu = new HashMap<>(); cityMenu.put("cityId", cp.getCityId()); cityMenu.put("cityName", cp.getCityName()); lmList.add(cityMenu); } return lmList; }
Dao层:
/** 查询指定类的满足条件的持久化对象 */ public List findByHql(String hql) { try { final String hql1 = hql; return getHibernateTemplate().find(hql1); } catch (Exception e) { e.printStackTrace(); } return null; }
数据表结构:
效果图
0 0
- AjAX+SSH实现省份下拉菜单
- 省份下拉菜单实现
- js实现省份下拉菜单
- Ajax实现省份-城市二级下拉联动
- 使用ajax+json+struts实现省份下拉框二级联动
- ajax实现级联下拉菜单
- 全国省份城市级联下拉菜单
- 用 PHPRPC 实现 Ajax 级联下拉菜单
- jquery实现ajax下拉菜单联动
- Jquery ajax 实现两级下拉菜单联动
- ajax实现三级联动下拉菜单
- 用 PHPRPC 实现 Ajax 级联下拉菜单
- jQuery+ajax实现搜索下拉菜单
- 用AJAX实现联动下拉菜单(Cascading DropDownList Using AJAX)
- 用AJAX实现联动下拉菜单(Cascading DropDownList Using AJAX)
- ajax 级联下拉菜单
- Ajax下拉菜单联动
- 下拉菜单中的ajax
- 蓝桥——未名湖边的烦恼(DP)
- Linux入门
- 阻塞式I/0 和 非阻塞式I/O 同步异步详细介绍
- 接口优化了的观察者模式
- Windows远程访问Mac OS的方法
- AjAX+SSH实现省份下拉菜单
- Vue.js学习系列(二十二)--过滤器
- LeetCode | 496. Next Greater Element I
- 【设计模式】转载23种设计模式
- React Native Android(一) 新建项目,运行,错误解决
- 区间k大数查询
- Service中的绑定服务总结
- 分离整数部分和小数部分
- 每日一道算法题5——翻转句子中单词的顺序