前端jsp页面代码:
城市博物馆列表
<select name="erea" class="org" style="width:162px">
<option value="">所在区域</option>
<c:forEach items="${cityList}" var="city" varStatus="row">
<option value="${city.id}" <c:if test="${city.id eq erea}">selected</c:if> >${city.shortname}</option>
</c:forEach>
</select>
<select name="collectionUnit" id="museum" class="select select-box inline" style="width:162px;">
<option value="">收藏单位</option>
<c:forEach items="${musList}" var="mus" varStatus="row">
<option value="${mus.id}" <c:if test="${mus.id eq mipOpenCulturalrelicInfo.collectionUnit}">selected</c:if> >${mus.shortname}</option>
</c:forEach>
</select>
js代码:(通过class定位;如果多级,就在需要的select中添加class="org"就可以了)
<script type="text/javascript">
$(function(){
$('.org').change(function(){
var pid=$(this).val();
var obj=$(this).next('select');
var first=obj.children().first().clone();
$.ajax({
url:"/admin/back/oCCollection/sltMuseum.do",
data:{parentId:pid},
type:"POST",
datatype:"json",
success:function(msg){
obj.empty().append(first);
for(var i in msg){
obj.append("<option value="+msg[i]['id']+">"+msg[i]['shortname']+"</option>");
}
}
});
});
});
</script>
后台代码:(springMVC,Spring,hibernate)
@RequestMapping("/sltMuseum.do")
@ResponseBody
public List<MipOrganization> getCollectionInfo(@RequestParam(name = "parentId") String id) {
String hql = "";
if (!MyString.isEmpty(id)) {
hql = "from MipOrganization where status>0 and isdelete=0 and parentId=" + id;
}else {
hql = "from MipOrganization where 1 <> 1";
}
List<MipOrganization> museumList2 = (List<MipOrganization>) mipOrganizationService.queryByHql(hql,
Tools.getMap());
return museumList2;
}
数据库表结构注意:
定义字段pid存储上一级的id