要做一个学院--班级的联动下拉框..从数据库里取值
学院下拉框:
<s:select name="SAcademy" list="academyList" listKey="AId" id="AId" listValue="AName" value="SAcademy" onchange="onchangeShow(this.value)"></s:select>
班级下拉框:
<select name="SClass" id="CId" style="width:160px"></select>
ajax代码:
function onchangeShow(AId){
jQuery.ajax({
url : "docuview/StudentGetComName",
data : {id : AId},
type : "post",
cache : false,
dataType : "json",
success:onchangecallback
});
}
function onchangecallback(data){
document.all['CId'].options.length = 0;
var str="<option value=''>全部</option>";
for(var i=0;i<data.length;i++){
str+="<option value='"+data[i].CId+"'>"+data[i].CName+"</option>" ;
}
$("#CId")(str);
if("${SClass}"!=''){
for(var i=0;i<data.length;i++){
if(data[i].value=="${SClass}")
document.all['CId'].selectedIndex=i+1;
}
}
}
java代码:
public void GetComName(){
try{
classList = this.aclassDAO.findByAid(id);
System.out.println(classList);
JSONArray jsonObj = JSONArray.fromObject(classList);
sendMsg(jsonObj.toString());
System.out.println(id);
System.out.println("----------------");
}catch(Exception e){
e.printStackTrace();
}
}
public void sendMsg(String content) throws IOException {
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
response.getWriter().write(content);
}
选择了第一个下拉框后,没有联动第二个下拉框..
上面的System.out.println();是测试打的..
只能输出到System.out.println(classList);
System.out.println(id);System.out.println("----------------");没有输出..
也就是程序到了JSONArray jsonObj = JSONArray.fromObject(classList);没有下去..
各给做过strust2联动下拉框的指导指导...
二级联动怎么做..
若是三级呢??
------解决方案--------------------------------------------------------
System.out.println(id);System.out.println("----------------");没有输出
对于一次request请求,reponse已经处理你的请求(response.getWriter().write(content);),所以不会输出了
楼主基本思路是对的。
onchangecallback 看下返回的data数据。
------解决方案--------------------------------------------------------
选择了第一个下拉框后,没有联动第二个下拉框.. 可能是你脚本写的有问题,
ajax代码:
function onchangeShow(AId){
jQuery.ajax({
url : "docuview/StudentGetComName",
data : {id : AId},
type : "post",
cache : false,
dataType : "json",
success:onchangecallback(date){
document.all['CId'].options.length = 0;
var str="<option value=''>全部</option>";
for(var i=0;i<data.length;i++){
str+="<option value='"+data[i].CId+"'>"+data[i].CName+"</option>" ;
}
$("#CId")(str);
if("${SClass}"!=''){
for(var i=0;i<data.length;i++){
if(data[i].value=="${SClass}")
document.all['CId'].selectedIndex=i+1;
}
});
}
------解决方案--------------------------------------------------------
http://blog.csdn.net/ld191474639/article/details/8061716
我写的ajax二级联动,借鉴给你。控制器用的是servlet
------解决方案--------------------------------------------------------