JSP页面代码:
<script type="text/javascript">
$(function(){
$("#language_tm2008").change(function(){
var company = $("#language_tm2008").val();
$.ajax({
type:"POST",
url :"<%=basePath %>view/report/getDepart.do",
data:{
companyId:company
},
dataType:"json",
success:function(data){
$("#language_tm2009").empty();
$("#language_tm2009").append("<option value=''>----选择申请部门----</option>");
$.each(data.tasks,function(index,item){
$("#language_tm2009").append( "<option value='"+item.id+"'>"+item.name+"</option>");
});
}
});
});
});
</script>
第一级公司是固定的
<select name="search_EQ_department_c" class="sel_hei" id="language_tm2008">
<option value="">选择申请公司</option>
<option value="4028805120f505f90120f54ca9320047">省公司</option>
<option value="4028805120f505f90120f54ca9320046">地市</option>
</select>
第二级部门
<select name="search_EQ_department_d" class="sel_hei" id="language_tm2009">
<option value="">----选择申请部门----</option>
</select>
后台代码:
@RequestMapping(value="/getDepart")
public @ResponseBody Map<String,Object> getDepartment(String companyId){
//获得部门列表
List<Department> departmentList = this.commonReportService.getApplyDepart(companyId);
Map<String,Object> jsonMap = new HashMap<String, Object>();
List list = null;
if(null != departmentList && departmentList.size()>0){
list = new ArrayList();
for(Department depart : departmentList){
Map<String,String> taskMap=new HashMap<String,String>();
taskMap.put("id", depart.getId());
taskMap.put("name", depart.getName());
list.add(taskMap);
}
}
jsonMap.put("tasks", list);
return jsonMap;
}
JSP页面提交form表单后,返回到当前页面的时候,我们要求还是提交前的查询条件,那么就要从后台返回一个二级菜单的列表 和 提交前的 查询条件。
<select name="search_EQ_department_d" class="sel_hei" id="language_tm2009">
<option value="">----选择申请部门----</option>
<c:if test="${departmentList!=null && fn:length(departmentList)>0}">
<c:forEach items="${departmentList}" var="depart" varStatus="go">
<option value="${depart.id}" <c:if test="${depart.id == searchParams['EQ_department_d']}">selected="selected"</c:if> >${depart.name}</option>
</c:forEach>
</c:if>
</select>
这样就可以了。