ajax+jsp实现三级联动下拉框
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实现三级联动下拉框的更多相关文章
- 项目总结01:JSP mysql SpringMvc下中国省市县三级联动下拉框
JSP mysql SpringMvc下中国省市县三级联动下拉框 关键词 JSP mysql数据库 SpringMvc ajax Controller层 Service层 中国地区 省 ...
- jquery+html三级联动下拉框
jquery+html三级联动下拉框及详情页面加载时的select初始化问题 html写的三个下拉框,如下: <select name="ddlQYWZYJ" id=&q ...
- Android实现三级联动下拉框 下拉列表spinner
Android实现(省.市.县)三级联动下拉框 下拉列表spinner 转载请注明出处: http://www.goteny.com/articles/2013/11/46.html http://w ...
- Web 1三级联动 下拉框 2添加修改删除 弹框
Web 三级联动 下拉框 using System; using System.Collections.Generic; using System.Linq; using System.Web; u ...
- JS年月日三级联动下拉框日期选择代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jquery+ligerform三级联动下拉框
如下为ligerform里的三级联动下拉框: var formData=[ {display:,width:,space:,type:"select",group:"区域 ...
- JQ与AJAX 省市区三级联动下拉框
用于初学者学习基本的联动下拉框,废话不多说,见代码 首先看控制器里的3个下拉框对应代码: public ActionResult GetProvinceList() { ProvinceReposit ...
- jquery+html三级联动下拉框及详情页面加载时的select初始化问题
html写的三个下拉框,如下: <select name="ddlQYWZYJ" id="ddl_QYWZYJ" class="fieldsel ...
- Android实现三级联动下拉框下拉列表spinner
原文出处:http://www.cnblogs.com/zjjne/archive/2013/10/03/3350107.html 主要实现办法:动态加载各级下拉值的适配器 在监听本级下拉框,当本级下 ...
随机推荐
- JVM --java 字节码的结构解析
Java字节码文件的主体结构分为一下几个部分:Class文件头部.常量池区域.当前类的描述信息.字段列表.方法列表.属性列表. Class文件头部 任何的class文件的前四个字节的内容就是CA FE ...
- Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件
原文 Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件 第21部分:永久保存Wav音频文件 原文地址:http://channel9.msdn.com/Series/Win ...
- QT的动态翻译功能,可能依赖于消息(事件)机制
QTranslator translator; bool b = translator.load(QString(":/qm/lang_en"));以后,无论使用QObject的t ...
- BZOJ 1305 CQOI2009 dance跳舞 二分答案+最大流
题目大意:给定n个男生和n个女生,一些互相喜欢而一些不.举行几次舞会,每次舞会要配成n对.不能有同样的组合出现.每一个人仅仅能与不喜欢的人跳k次舞,求最多举行几次舞会 将一个人拆成两个点.点1向点2连 ...
- [Cocos2d-x开发问题-3] cocos2dx动画Animation介绍
Cocos2d-x为了减少开发难度,对于动画的实现採用的帧动画的方案.这也就是说Cocos2d-x中的动画是帧动画. 帧动画的原理相信大家都不陌生,就是多张图片循环播放以实现动画的效果. 一个简单的动 ...
- 最短路径A*算法原理及java代码实现(看不懂是我的失败)
算法仅仅要懂原理了,代码都是小问题,先看以下理论,尤其是红色标注的(要源代码请留下邮箱,有測试用例,直接执行就可以) A*算法 百度上的解释: A*[1](A-Star)算法是一种静态路网中求解最短路 ...
- Java多线程实现生产者消费者延伸问题
在操作系统中有一类问题被称为生产者消费者问题:意为,有数个生产者生产产品,有数个消费者消费产品,他们共享一定数量的缓存. 这里用java多线程编程,实现生产者消费者问题的一种延伸,橘子苹果问题. 题目 ...
- Spring Configuration Check Unmapped Spring configuration files found
Spring Configuration Check Unmapped Spring configuration files found 项目中有xml文件,但没有被用IntelliJ 导入现有工程时 ...
- 看到关于socket非阻塞模式设置方式记录一下。
关于socket的阻塞与非阻塞模式以及它们之间的优缺点,这已经没什么可言的:我打个很简单的比方,如果你调用socket send函数时: 如果是阻塞模式下: send先比较待发送数据的长度len和套接 ...
- UVA它11292 - Dragon of Loowater
Problem C: The Dragon of Loowater Once upon a time, in the Kingdom of Loowater, a minor nuisance tur ...