表设计:
在区域表中有id,qyjb(级别),syjqy(父节点id),qymc(名称);
jsp:使用ajax
//查询下级区域
function checkarea(fir,sed){ //fir为当初级别的js识别id,sed为下一级的js识别id
var data={};
var firname="#"+fir;
var sedname="#"+sed;
var sednext=sedname+" option:last-child";
data.area=$(firname).val();
if(data.area!=""){
$.ajax({
type:"post",
url:"<c:url value='/usercenter/volunteers/vol/checkarea.jhtml'/>",
async:true,
data:data,
dataType : "json",
error: function () {//请求失败处理函数
alert('请求失败');
},
success:function(data){ //请求成功后处理函数。
$(sedname).empty();
if(data!=null){
$(sedname).append("<option></option>");
$(sednext).attr("value","");
$(sednext).text("--请选择--");
var l=data.length;
for(var i=0;i<l;i++){
$(sedname).append("<option></option>");
$(sednext).attr("value",data[i].id);
$(sednext).text(data[i].qymc);
}
}else{
$(sedname).append("<option></option>");
$(sednext).attr("value","0");
$(sednext).text("无下级区域");
}
}
});
}else{
$(sedname).empty();
$(sedname).append("<option></option>");
$(sednext).attr("value","");
$(sednext).text("请先选择省");
}
}
HTML
<select name="jg1" id="sheng" οnchange="checkarea('sheng','shi')" required="required">
<option value="">-请选择-</option>
<c:forEach items="${qylist}" var="s" >
<c:if test="${s.qyjb==1}">
<option value="${s.id}" <c:if test="${s.id==xyxx.TJgQy1.id}">selected="selected"</c:if> >${s.qymc}</option>
</c:if>
</c:forEach>
</select>省
java
private int area;//区域添加时接受前端传来的上一级区域
public void checkarea(){
int fid=area;
List<Map<String, Object>> List=new ArrayList<Map<String,Object>>();//数据列表
List<ZxbzQy>citylist;
if(fid>0){
Map<String, Object> queryParam2=new HashMap<String, Object>();
queryParam2.put("sfsc", 0);
queryParam2.put("fid", fid);
citylist=jpaService.getBy(ZxbzQy.class,queryParam2);
for(ZxbzQy y:citylist){
Map<String,Object> map = new HashMap<String, Object>();
map.put("id",y.getId());
map.put("qymc", y.getQymc());
List.add(map);
}
if(List.size()<1){
List=null;
}
}else{
citylist=null;
}
S2Utils.renderJson(List);
}
PS:
jpaService.<span style="font-family: Arial, Helvetica, sans-serif;">getBy为根据参数查询对应的实体列表,由于不是本人编辑,因此不展示。</span>