日期:2014-05-17  浏览次数:20710 次

struts2 ajax 下拉框联动问题
要做一个学院--班级的联动下拉框..从数据库里取值
学院下拉框:
<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").html(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",