js文件sjld.js  :

$(document).ready(
function(){
$.ajax({
url:"bindZ",
type:"get",
dataType:"json",
success:bindZList
});
}
); //回调函数
function bindZList(json){
data=(json.a);
for(zmc in data){
var option = document.createElement("option");
for(key in data[zmc]){
document.getElementById("bindZ").appendChild(option);
option.text=data[zmc];
}
}
} function getKcbh(){
//绑定之前 清空第一个以外的option
$("#bindK").children().eq().siblings().remove();
$("#bindZsd").children().eq().siblings().remove();
var temp=$("#bindZ").find("option:selected").val();
$.ajax({
url:"bindK",
type:"get",
dataType:"json",
data:"zmc="+temp,
success:bindKList
});
}
//回调函数
function bindKList(json){
data=(json.k);
for(CName in data){
var option = document.createElement("option");
for(key in data[CName]){
document.getElementById("bindK").appendChild(option);
option.text=data[CName];
}
}
} function getZsd(){
//绑定之前 清空第一个以外的option
$("#bindZsd").children().eq().siblings().remove();
var temp = $("#bindK").find("option:selected").val();
$.ajax({
url:"bindZsd",
type:"get",
dataType:"json",
data:"CName="+temp,
success:bindZsdList
});
}
//回调函数
function bindZsdList(json){
data=(json.s);
for(zsdmc in data){
var option = document.createElement("option");
for(key in data[zsdmc]){
document.getElementById("bindZsd").appendChild(option);
option.text=data[zsdmc];
}
}
}

action  文件sjld.java :

//获得一级数据源
@Action(value="/bindZ",results={@Result(name="success",type="json")})
public String bindZ(){
list1=this.baseservice.find(Zinfo.class);
for(int i=;i<list1.size();i++){
String b=list1.get(i).getZmc();
a.add(b);
}
return SUCCESS;
} //获得二级数据源
@Action(value="/bindK",results={@Result(name="success",type="json")})
public String bindK(){
if(zmc!=null){ //通过zmc查找CId
String[] keys=new String[];
keys[]="zmc";
Object[] values=new Object[];
values[]=zmc;
List<Integer> CId=this.baseservice.find(Integer.class, "Zinfo", "id.CId", keys, values);
for(int j=;j<CId.size();j++){
String[] keys1 = {"c_id"};
Object[] values1 = {CId.get(j)};
list2=this.baseservice.find(Kcxx.class, "Kcxx", keys1, values1);
String c = list2.get().getCName();
k.add(c); }
}
return SUCCESS;
} //获得三级数据源
@Action(value="/bindZsd",results={@Result(name="success",type="json")})
public String bindZsd(){ if(CName!=null){ //通过CName查找CId
String[] keys=new String[];
keys[]="CName";
Object[] values=new Object[];
values[]=CName;
List<Integer> CId=this.baseservice.find(Integer.class, "Kcxx", "CId", keys, values);
for(int k=;k<CId.size();k++){
String[] keys1 = {"c_id"};
Object[] values1 = {CId.get(k)};
list3=this.baseservice.find(Zsd.class, "Zsd", keys1, values1);
String d = list3.get().getZsdmc();
s.add(d);
}
}
return SUCCESS;
}

其中定义的变量:

private List<Zinfo> list1;
private List<Kcxx> list2;
private List<Zsd> list3; private String CName;
private String zmc;
private String zsdmc; private List<String> a=new ArrayList<String>();
private List<String> k=new ArrayList<String>();
private List<String> s=new ArrayList<String>(); //省略getter、setter方法

jsp页面代码:

<tr>
<td>
章名称:
</td>
<td>
<select id="bindZ" onChange="getKcbh()" style="width:100px;"></select>
</td>
</tr>
<tr>
<td>
课程名称:
</td>
<td>
<select id="bindK" onChange="getZsd()" style="width:100px;">
<option value="-1">--</option>
</select>
</td>
</tr>
<tr>
<td>
知识点名称:
</td>
<td>
<select id="bindZsd" style="width:100px;">
<option value="-1">--</option>
</select>
</td>
</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. JVM --java 字节码的结构解析

    Java字节码文件的主体结构分为一下几个部分:Class文件头部.常量池区域.当前类的描述信息.字段列表.方法列表.属性列表. Class文件头部 任何的class文件的前四个字节的内容就是CA FE ...

  2. Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件

    原文 Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件 第21部分:永久保存Wav音频文件 原文地址:http://channel9.msdn.com/Series/Win ...

  3. QT的动态翻译功能,可能依赖于消息(事件)机制

    QTranslator translator; bool b = translator.load(QString(":/qm/lang_en"));以后,无论使用QObject的t ...

  4. BZOJ 1305 CQOI2009 dance跳舞 二分答案+最大流

    题目大意:给定n个男生和n个女生,一些互相喜欢而一些不.举行几次舞会,每次舞会要配成n对.不能有同样的组合出现.每一个人仅仅能与不喜欢的人跳k次舞,求最多举行几次舞会 将一个人拆成两个点.点1向点2连 ...

  5. [Cocos2d-x开发问题-3] cocos2dx动画Animation介绍

    Cocos2d-x为了减少开发难度,对于动画的实现採用的帧动画的方案.这也就是说Cocos2d-x中的动画是帧动画. 帧动画的原理相信大家都不陌生,就是多张图片循环播放以实现动画的效果. 一个简单的动 ...

  6. 最短路径A*算法原理及java代码实现(看不懂是我的失败)

    算法仅仅要懂原理了,代码都是小问题,先看以下理论,尤其是红色标注的(要源代码请留下邮箱,有測试用例,直接执行就可以) A*算法 百度上的解释: A*[1](A-Star)算法是一种静态路网中求解最短路 ...

  7. Java多线程实现生产者消费者延伸问题

    在操作系统中有一类问题被称为生产者消费者问题:意为,有数个生产者生产产品,有数个消费者消费产品,他们共享一定数量的缓存. 这里用java多线程编程,实现生产者消费者问题的一种延伸,橘子苹果问题. 题目 ...

  8. Spring Configuration Check Unmapped Spring configuration files found

    Spring Configuration Check Unmapped Spring configuration files found 项目中有xml文件,但没有被用IntelliJ 导入现有工程时 ...

  9. 看到关于socket非阻塞模式设置方式记录一下。

    关于socket的阻塞与非阻塞模式以及它们之间的优缺点,这已经没什么可言的:我打个很简单的比方,如果你调用socket send函数时: 如果是阻塞模式下: send先比较待发送数据的长度len和套接 ...

  10. UVA它11292 - Dragon of Loowater

    Problem C: The Dragon of Loowater Once upon a time, in the Kingdom of Loowater, a minor nuisance tur ...