
这只是一个基础版,后续还要再进行优化。
代码:省市级关联菜单下载地址
说明:
sql语句就不再说了,里面有“city.sql”、“provincial.sql”两个文件。
1、先说说获取数据
public void initProcitys() { logger.info("获取所在地区"); List<Provincials> provincials = Provincials.me.getProvincials(); for (Provincials provincial : provincials) { List<Citys> citys = Citys.me.getCitysByProvincialId(provincial.getLong("id")); provincial.put("citys", JsonKit.toJson(citys)); } setAttr("provincials", provincials); render("procity.jsp");}1). 先获取所有的省级菜单。 <select name="province_code" id="province_select"> <c:forEach items="${provincials}" var="item"> <option value="${item.procode}" cdata="${item.citys}">${item.proname}</option> </c:forEach></select><select name="city_code" id="city_select"></select>1). 使用了两个select,还没有加式样 $(function() { provincialChange(); var $provincial = $("#province_select"); $provincial.change(provincialChange);});function provincialChange() { var $provincial = $("#province_select"); // 省级显示的code值 var provincial_code = $provincial.val(); var $selectedOption = $("#province_select option[value=" + provincial_code + "]"); var city_data = YUNM.jsonEval($selectedOption.attr("cdata")); // 市级的菜单列表 $city_select = $("#city_select"); $city_select.empty(); for (var i = 0; i < city_data.length;i++ ) { var code = city_data[i].code; var cname = city_data[i].cname; $city_select.append("<option value=""+code+"">"+cname+"</option>"); }}1). 页面初始化加载和省级菜单切换时,需要对市级菜单进行加载