js文件sjld.js  :

  1. $(document).ready(
  2. function(){
  3. $.ajax({
  4. url:"bindZ",
  5. type:"get",
  6. dataType:"json",
  7. success:bindZList
  8. });
  9. }
  10. );
  11.  
  12. //回调函数
  13. function bindZList(json){
  14. data=(json.a);
  15. for(zmc in data){
  16. var option = document.createElement("option");
  17. for(key in data[zmc]){
  18. document.getElementById("bindZ").appendChild(option);
  19. option.text=data[zmc];
  20. }
  21. }
  22. }
  23.  
  24. function getKcbh(){
  25. //绑定之前 清空第一个以外的option
  26. $("#bindK").children().eq().siblings().remove();
  27. $("#bindZsd").children().eq().siblings().remove();
  28. var temp=$("#bindZ").find("option:selected").val();
  29. $.ajax({
  30. url:"bindK",
  31. type:"get",
  32. dataType:"json",
  33. data:"zmc="+temp,
  34. success:bindKList
  35. });
  36. }
  37. //回调函数
  38. function bindKList(json){
  39. data=(json.k);
  40. for(CName in data){
  41. var option = document.createElement("option");
  42. for(key in data[CName]){
  43. document.getElementById("bindK").appendChild(option);
  44. option.text=data[CName];
  45. }
  46. }
  47. }
  48.  
  49. function getZsd(){
  50. //绑定之前 清空第一个以外的option
  51. $("#bindZsd").children().eq().siblings().remove();
  52. var temp = $("#bindK").find("option:selected").val();
  53. $.ajax({
  54. url:"bindZsd",
  55. type:"get",
  56. dataType:"json",
  57. data:"CName="+temp,
  58. success:bindZsdList
  59. });
  60. }
  61. //回调函数
  62. function bindZsdList(json){
  63. data=(json.s);
  64. for(zsdmc in data){
  65. var option = document.createElement("option");
  66. for(key in data[zsdmc]){
  67. document.getElementById("bindZsd").appendChild(option);
  68. option.text=data[zsdmc];
  69. }
  70. }
  71. }

action  文件sjld.java :

  1. //获得一级数据源
  2. @Action(value="/bindZ",results={@Result(name="success",type="json")})
  3. public String bindZ(){
  4. list1=this.baseservice.find(Zinfo.class);
  5. for(int i=;i<list1.size();i++){
  6. String b=list1.get(i).getZmc();
  7. a.add(b);
  8. }
  9. return SUCCESS;
  10. }
  11.  
  12. //获得二级数据源
  13. @Action(value="/bindK",results={@Result(name="success",type="json")})
  14. public String bindK(){
  15. if(zmc!=null){
  16.  
  17. //通过zmc查找CId
  18. String[] keys=new String[];
  19. keys[]="zmc";
  20. Object[] values=new Object[];
  21. values[]=zmc;
  22. List<Integer> CId=this.baseservice.find(Integer.class, "Zinfo", "id.CId", keys, values);
  23. for(int j=;j<CId.size();j++){
  24. String[] keys1 = {"c_id"};
  25. Object[] values1 = {CId.get(j)};
  26. list2=this.baseservice.find(Kcxx.class, "Kcxx", keys1, values1);
  27. String c = list2.get().getCName();
  28. k.add(c);
  29.  
  30. }
  31. }
  32. return SUCCESS;
  33. }
  34.  
  35. //获得三级数据源
  36. @Action(value="/bindZsd",results={@Result(name="success",type="json")})
  37. public String bindZsd(){
  38.  
  39. if(CName!=null){
  40.  
  41. //通过CName查找CId
  42. String[] keys=new String[];
  43. keys[]="CName";
  44. Object[] values=new Object[];
  45. values[]=CName;
  46. List<Integer> CId=this.baseservice.find(Integer.class, "Kcxx", "CId", keys, values);
  47. for(int k=;k<CId.size();k++){
  48. String[] keys1 = {"c_id"};
  49. Object[] values1 = {CId.get(k)};
  50. list3=this.baseservice.find(Zsd.class, "Zsd", keys1, values1);
  51. String d = list3.get().getZsdmc();
  52. s.add(d);
  53. }
  54. }
  55. return SUCCESS;
  56. }

其中定义的变量:

  1. private List<Zinfo> list1;
  2. private List<Kcxx> list2;
  3. private List<Zsd> list3;
  4.  
  5. private String CName;
  6. private String zmc;
  7. private String zsdmc;
  8.  
  9. private List<String> a=new ArrayList<String>();
  10. private List<String> k=new ArrayList<String>();
  11. private List<String> s=new ArrayList<String>();
  12.  
  13. //省略getter、setter方法

jsp页面代码:

  1. <tr>
  2. <td>
  3. 章名称:
  4. </td>
  5. <td>
  6. <select id="bindZ" onChange="getKcbh()" style="width:100px;"></select>
  7. </td>
  8. </tr>
  9. <tr>
  10. <td>
  11. 课程名称:
  12. </td>
  13. <td>
  14. <select id="bindK" onChange="getZsd()" style="width:100px;">
  15. <option value="-1">--</option>
  16. </select>
  17. </td>
  18. </tr>
  19. <tr>
  20. <td>
  21. 知识点名称:
  22. </td>
  23. <td>
  24. <select id="bindZsd" style="width:100px;">
  25. <option value="-1">--</option>
  26. </select>
  27. </td>
  28. </tr>

ajax+jsp实现三级联动下拉框的更多相关文章

  1. 项目总结01:JSP mysql SpringMvc下中国省市县三级联动下拉框

    JSP mysql SpringMvc下中国省市县三级联动下拉框 关键词 JSP  mysql数据库  SpringMvc  ajax   Controller层  Service层  中国地区  省 ...

  2. jquery+html三级联动下拉框

    jquery+html三级联动下拉框及详情页面加载时的select初始化问题   html写的三个下拉框,如下: <select name="ddlQYWZYJ" id=&q ...

  3. Android实现三级联动下拉框 下拉列表spinner

    Android实现(省.市.县)三级联动下拉框 下拉列表spinner 转载请注明出处: http://www.goteny.com/articles/2013/11/46.html http://w ...

  4. Web 1三级联动 下拉框 2添加修改删除 弹框

    Web  三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...

  5. JS年月日三级联动下拉框日期选择代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  6. jquery+ligerform三级联动下拉框

    如下为ligerform里的三级联动下拉框: var formData=[ {display:,width:,space:,type:"select",group:"区域 ...

  7. JQ与AJAX 省市区三级联动下拉框

    用于初学者学习基本的联动下拉框,废话不多说,见代码 首先看控制器里的3个下拉框对应代码: public ActionResult GetProvinceList() { ProvinceReposit ...

  8. jquery+html三级联动下拉框及详情页面加载时的select初始化问题

    html写的三个下拉框,如下: <select name="ddlQYWZYJ" id="ddl_QYWZYJ" class="fieldsel ...

  9. Android实现三级联动下拉框下拉列表spinner

    原文出处:http://www.cnblogs.com/zjjne/archive/2013/10/03/3350107.html 主要实现办法:动态加载各级下拉值的适配器 在监听本级下拉框,当本级下 ...

随机推荐

  1. 知识点1-3:MVC设计模式

    MVC代表模型-视图-控制器(Model-View-Controller),起源于20世纪70年代的Smalltalk开发社区,2003年起随着Ruby on Rails的出现才在Web上流行使用. ...

  2. Rabbit.Rpc

    .NET轻量级RPC框架:Rabbit.Rpc 最近准备写一个.NET的管理平台应用在公司,由于存在大量的Client => Server,Server => Client的请求需求在加上 ...

  3. 更改ORACLE 用户的 expired状态

    oracle中, 经常用户的状态会变成locked, expired 等状态, 这种情况下怎么处理呢? 首先, 如果是locked状态还好办, DBA直接执行alter user scott acco ...

  4. PHP - 操作符与控制结构

    第3章 操作符与控制结构 学习要点: 1.字符串插入 2.操作符 3.控制结构 一.字符串插入 为了给开发人员处理字符串值提供最大的灵活性,PHP为字面插入和内容插入提供了一种方法. 双引号提供了最大 ...

  5. telerik 控件 SCRIPT5007: 无法获取未定义或 null 引用的属性“documentElement” (IE 文档模式)

    IE对盒模型的渲染在 Standards Mode和Quirks Mode是有很大差别的,在Standards Mode下对于盒模型的解释和其他的标准浏览器是一样,但在Quirks Mode模式下则有 ...

  6. FMXUI - UI.Dialog 示例

    在 FMXUI 开源库,增加了 UI.Dialog 单元.此单元实现了跨平台的基础对话框组件.使用时引用 UI.Dialog 即可.如果需要自定义对话框的样式, 可以添加一个 TDialogStyle ...

  7. Spring MVC 学习笔记 json格式的输入和输出

    Spring mvc处理json需要使用jackson的类库,因此为支持json格式的输入输出需要先修改pom.xml增加jackson包的引用 <!-- json --> <dep ...

  8. xpath的文本获取

    xpath中tidyText()获取标签下所有文本, text()本级文本, allText()各级所有文本.

  9. 在 Visual Studio 调试器中指定符号 (.pdb) 和源文件

    查找并指定符号文件和源文件:指定符号加载行为.使用符号和源服务器上:加载符号自动或在要求.   内容 查找符号 (.pdb) 文件 查找源文件   查找符号 (.pdb) 文件 说明 在之前的 Vis ...

  10. 【Tips】Endnote导入IEEE Xplore文献方法《转载》

    1. 在IEEE XPlore中点击“Download Citation”: 2. 选中“Citation & Abstract”和“EndNote,Procite,RefMan”两个选项: ...