下拉框中的数据是在数据库中读取的,读取数据的方法写在当前jsp页面中。
一级下拉框值变动,下一级下拉框的至随之改变。
应该如何实现?我写的数据能读取出来但是下一级下拉框中的值不会变化,请各位帮忙!
我的js代码:
<script type="text/javascript">
function oneCateChange() {
var catID = document.getElementById("oneCate").value;
var docLibID_PUB = document.getElemnetById("docLib_PUB").value;
/*var url="compareProgram.jsp?catID="+catID;
location.href = url;*/
$.ajax( {
type : "POST",
url : "compareProgram.jsp",
data : "catID=" + catID + "&docLibID_PUB=" + docLibID_PUB,
});
}
</script>jsp代码
<td>
一级栏目:
</td>
<td>
<select id="oneCate" onchange="oneCateChange()">
<option value="">
请选择栏目
</option>
<%
for (int i = 0; i < cats.length; i++) {
category = cats[i];
%>
<option value="<%=category.getCatID()%>">
<%=category.getCatName()%>
</option>
<%
}
%>
</select>
</td>
<%if(catList.size()>0){%>
<td>
二级栏目
</td>
<td>
<select id="twoCate">
<%
System.out.println(catList.size() + "***");
for (int i = 0; i < catList.size(); i++) {
category = catList.get(i);
%>
<option value="<%=category.getCatID()%>">
<% System.out.println(category.getCatID());%>
<%=category.getCatName()%>
</option>
<%
System.out.println(category.getCatName());
}
%> </select>
</td>
<%} %>

解决方案 »

  1.   

    用js去更新select当中的option。
      

  2.   

    或者你ajax结束的时候把数据放入到request或者session中然后用你上面那种方式直接获取也可以
      

  3.   

    $.ajax( {
            type : "POST",
            url : "compareProgram.jsp",
            data : "catID=" + catID + "&docLibID_PUB=" + docLibID_PUB,
            success : fucntion(data){
                $("#twoCate").empty();
                $("<option value=\"0\">==请选择==</option>").appendTo($select);
    for(var i=0;i<data.length;i++){
    $("<option value=\""+data[i].getCatID+"\">"+data[i].getCatName+"</option>").appendTo($("#twoCate"));
    }
            }
        });
      

  4.   

     $.ajax({
    type:"post",
    data:{idBranchorg:idBrachorg},
    url:"../sVal.action",
    dataType:"json",
    success:function(sValJson ){
    $("#userCode").val(sValJson[0].sVal);
            },
            error:function(){
                alert("error!");
            }
    });
    第一个框change的时候触发第二个框;用ajax把第一个框的id传回去,根据这个id查出第二个框。
      

  5.   


    是,差不多就是这种的。
    其实很容易理解,你既然都会jquery如何进入后台了,那联动进入后台查询数据,应该不是难事吧?
    你觉得难得是不是把联动捞到的数据如何循环放到第二个下拉框?这个也很容易,3楼的做法基本可以。你试着改下。
      

  6.   

    把所有的select都写在一个div中。 然后通过ajax返回一个select字符串。然后替换掉以存在的DIV应该就可以。
      

  7.   


    我的java方法写在了当前页面,返回值应该是个html页面,这种方式好像不适合!
      

  8.   

    用楼3的方法就可以啊,通过session或者json返回数据,直接获取就是了
      

  9.   


    我的java方法写在前天jsp页面,数据应该如何返回呢