一,后台需要提供以下格式的字符串.
<select style="width: 125px; margin-left: 10px;">
<option value="4">动作</option>
<option value="5">爱情</option>
<option value="7">恐怖</option>
</select>
<select style="width: 125px; margin-left: 10px;">
<option value="8">XXX</option>
<option value="9">XXX</option>
<option value="10">XXX</option>
</select>
<select style="width: 125px; margin-left: 10px;">
<option value="11">XXX</option>
</select>
二,js处理代码.
$(function(){
var url = ""; //获取html的url
$("#category_select_div").on("change","select",function(){
var parentId = $(this).children('option:selected').val();
var se = $(this).nextAll();
if(se != null){
se.remove();
}
$.post(url+parentId, function(data) {
if(data != null && $.trim(data) != ""){
$("#category_select_div").append(data);
}
var cId = $("#category_select_div select").last().children('option:selected').val();
$("#category_id").val(cId);
},"html");
});
});
三,html代码.
<div id="category_select_div">
<select style="width: 125px; margin-left: 10px;">
<option value="1">电影</option>
<option value="2">电视</option>
<option value="3">综艺</option>
</select>
</div>
<!-- 存储ID值的input -->
<div>
<input id="category_id" type="hidden"/>
</div>
四,表结构如下:
id,parent_id,name1 0 电影
2 0 电视
3 0 综艺
4 1 动作
5 1 爱情
6 1 战争
7 1 恐怖
......
五,后台处理代码:
1,查询sql语句:select id,parent_id,name from category t where t.parent_id = 1
2,获取到的是一个List<Category> list;
3,
2,获取到的是一个List<Category> list;
3,
Integer parentId = 1;
PrintWriter out = response.getWriter();
StringBuffer html = null;
List<Category> list = null;
html = new StringBuffer("");
do{
list = categoryServices.selectListByParentId(parentId);//根据上面的sql语句查询list
if(list.size()>0){
parentId = list.get(0).getId();
for (int i = 0; i < list.size(); i++) {
if(i==0){
html.append("<select style=\"width: 125px;margin-left: 10px;\">");
}
html.append("<option value=\""+list.get(i).getId()+"\">"+list.get(i).getName()+"</option>");
if(i==list.size()-1){
html.append("</select>");
}
}
}
}while(list.size()>0);
out.print(html.toString());
out.flush();
out.close();