您好,欢迎访问一九零五行业门户网

JavaScript Ajax Json实现上下级下拉框联动效果实例代码_javascript技巧

最近尝试做出一个部门和人员的下拉框联动功能,部门和人员的对应关系是1:n
复制代码 代码如下:
部门
请选择
人员
部门下拉框的onchange()事件走一个ajax方法,返回一个json对象(json里放的是个list)。
js方法在此页面的写法:
复制代码 代码如下:
此处返回的data里包含list(list见后文),list里包含着人员的代码,人员的姓名两个属性。然后先把人员下拉框empty(),通过select控件append方法 添加新的下拉框元素。
后台代码:
复制代码 代码如下:
public string departmentchangeevent() throws exception{
  userlist=service.queryforlist(workorder.queryuserbydepartmentcode, departmentcode);
  if(userlist!=null&&userlist.size()>0)
  {
   httpservletresponse response = servletactioncontext.getresponse();
   response.setcontenttype(text/html;charset=utf-8);
   response.setheader(pragma,no-cache);
   response.setheader(cache-control,no-cache);
   response.setheader(cache-control, no-store);
   printwriter writer = response.getwriter();
   jsonobject json = new jsonobject();
   map map = new hashmap();
      map.put(list,userlist);
      jsonobject jso = jsonobject.fromobject(map);
   writer.write(jso.tostring());
      writer.flush();
      writer.close();  }
         return null; 
   }
这个方法是部门切换事件,通过departmentcode(field域,有set,get)来求的当前部门下的用户放到userlist中。
然后通过标准写法把userlist放到一个定义好的hashmap中,key为list。
复制代码 代码如下:
jsonobject jso = jsonobject.fromobject(map);
这是最为关键的一步,有的json对象创建方法也可以为jsonobject jso = new jsonobject() ; 然后把list里的记录放入到jso中。。。
在这里是行不通的,前台会认为返回的是个字符串。。。
struts中 返回类型为json
复制代码 代码如下:
其它类似信息

推荐信息