下拉框中的数据是在数据库中读取的,读取数据的方法写在当前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>
<%} %>
一级下拉框值变动,下一级下拉框的至随之改变。
应该如何实现?我写的数据能读取出来但是下一级下拉框中的值不会变化,请各位帮忙!
我的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>
<%} %>
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"));
}
}
});
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查出第二个框。
是,差不多就是这种的。
其实很容易理解,你既然都会jquery如何进入后台了,那联动进入后台查询数据,应该不是难事吧?
你觉得难得是不是把联动捞到的数据如何循环放到第二个下拉框?这个也很容易,3楼的做法基本可以。你试着改下。
我的java方法写在了当前页面,返回值应该是个html页面,这种方式好像不适合!
我的java方法写在前天jsp页面,数据应该如何返回呢