servlet+json+ajax集成

模拟下拉列表二级菜单联动

       

1、页面

 
  
< tr >
< td align ="right" >< font color ="red" > * </ font > 一级服务类型: </ td >
< td >
< select name ="dept" id ="dept" onchange ="loadDeptChild(this.options[this.options.selectedIndex].value)" />
< option value ="0" > 请选择... </ option >
< c:forEach items ="${depts}" var ="dept" >
< option value ="${dept.id }" > ${dept.name } </ option >
</ c:forEach >
</ select >
< span style ="color:red" > ${errDept} </ span >
</ td >
</ tr >
< tr >
< td align ="right" > 二级服务类型: </ td >
< td >
< select name ="deptChild" id ="deptChild" >
< option value ="0" > 请选择... </ option >
</ select >
</ td >
</ tr >

           

2、js

 
  
function loadDeptChild(dept){
var url = " servlet/CustomerServlet?action=loadDeptChild&dept= " + dept;
$.get(url,
null , function (data){
var objs = eval( " ( " + data + " ) " ); // 解析json对象
var deptChild = $( " #deptChild " );
deptChild.empty();
// 初始化否则会追加
deptChild.append( " <option value='0'>请选择...</option> " );
for ( var i = 0 ;i < objs.length;i ++ ){
deptChild.append(
" <option value=' " + objs[i].id + " '> " + objs[i].name + " </option> " );
}
});
}

    

3、servlet

 
  
/**
* 实现服务类型select二级联动
*
*
@throws ServletException
*
@throws IOException
*/
public void loadDeptChild() throws ServletException, IOException {
// 设置页面utf-8编码
// response.setContentType("text/html;charset=utf-8");
// 可以自动识别为Json对象,否则eval解析json无效
response.setContentType( " application/x-javascript;charset=UTF-8 " );
PrintWriter out
= response.getWriter();


Integer dept
= Integer.parseInt(request.getParameter( " dept " ));
List
< Dictionary > models = customerDao.getDeptChilds(dept);
if (models != null && models.size() > 0 ) {
// 构造json对象
StringBuffer json = new StringBuffer();
json.append(
" [ " );
for (Dictionary model : models) {
json.append(
' { ' );
json.append(
" id: " ).append(model.getId()).append( " , " );
json.append(
" name: " ).append( " ' " ).append(model.getName().trim()).append( " ' " );
json.append(
" }, " );
}
json.deleteCharAt(json.length()
- 1 );
json.append(
" ] " );
out.println(json.toString());
out.close();
}
else {
out.println(
" [{id:0,name:''}] " );
out.close();
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值