下拉框联动问题 我想在jsp页面做下拉框联动 当一个下拉框获得值时,另一个下拉框跟着前面的下拉框的数值变化,注意:下拉框中的值跟数据库连着的,请各位留下思路或者代码例子 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 判断前一下拉框当前值,ajax取下一下拉框,不行吗? 不用ajax,当你下拉第一个框时,设置onblur触发一个方法,而这个方法做的事情就是改变 第二个下拉框的数据。比如,第一个框有商品类别,第二框有具体的商品列表。参考代码如下:第一个下拉<td width="126"> <select name="searchFirst" id="searchFirst" onchange="selectChange()"> <option name="searchmaxid" value="-1">--请选择--</option> <c:forEach items="${requestScope.mcType}" var="first"> <c:if test="${first.npid==0}"> <option name="smaxid" value="${first.nid}">${first.sname }</option> </c:if> </c:forEach> </select></td>第二个下拉<td width="95"> <select name="searchSecond" value="${param.searchSecond}"> <option name="serachminid" value="-1">--请选择--</option> </select> </td>方法:function selectChange(){ var second_npid=document.getElementById("searchSecond"); searchForm.searchSecond.options.length=1; var first_nid=document.getElementById("searchFirst").value; for(i=0;i<${j};i++){ if(array_2[i].npid==first_nid){ searchForm.searchSecond.options.add(new Option(array_2[i].sname,array_2[i].nid)); } } 刚才写错了,就触发select的onChange()方法,不是onblur,其实要用onblur方法也可以的。 页面上就用三楼的方法来处理,只是在调用服务器端方法的时候,最好就用ajax的异步刷新技术。这样不用每做次改变都要让页面刷新一下 <HTML><HEAD><TITLE>动态改变下拉菜单内容示例</TITLE></HEAD><SCRIPT LANGUAGE=javascript>//定义一个二维数组aArray,用于存放城市名称。var aCity=new Array();aCity[0]=new Array();aCity[1]=new Array();aCity[2]=new Array();aCity[3]=new Array();//赋值,每个省份的城市存放于数组的一行。aCity[0][0]="--请选择--";aCity[1][0]="--请选择--";aCity[1][1]="广州市";aCity[1][2]="深圳市";aCity[1][3]="珠海市";aCity[1][4]="汕头市";aCity[1][5]="佛山市";aCity[2][0]="--请选择--";aCity[2][1]="长沙市";aCity[2][2]="株州市";aCity[2][3]="湘潭市";aCity[3][0]="--请选择--";aCity[3][1]="杭州市";aCity[3][2]="苏州市";aCity[3][3]="温州市";function ChangeCity(){var i,iProvinceIndex;iProvinceIndex=document.frm.optProvince.selectedIndex;iCityCount=0;while (aCity[iProvinceIndex][iCityCount]!=null) iCityCount++; //计算选定省份的城市个数document.frm.optCity.length=iCityCount;//改变下拉菜单的选项数for (i=0;i<=iCityCount-1;i++)//改变下拉菜单的内容document.frm.optCity[i]=new Option(aCity[iProvinceIndex][i]); document.frm.optCity.focus();} </SCRIPT><BODY ONfocus=ChangeCity()><H3>选择你所在的省份及城市</H3><FORM NAME="frm"><P>省份:<SELECT NAME="optProvince" SIZE="1" ONCHANGE=ChangeCity()><OPTION>--请选择--</OPTION><OPTION>广东省</OPTION><OPTION>湖南省</OPTION><OPTION>浙江省</OPTION></SELECT></P><P>城市:<SELECT NAME="optCity" SIZE="1"><OPTION>--请选择--</OPTION> </SELECT></P></FORM></BODY></HTML> 我的资源里有个AJAX下拉条联动源码,注释的很详细了,下载后连上数据库即可使用楼主可以去看看,参考下 array_2[i].npid 都是什么意思啊? array_2[i] 是 怎么传进来的请给提示。 我做过一个省份和城市的下拉框的2级联动,在我的博客里面,各层的代码都有,你可以加我好友去我的博客看下,跟你的需求是一样的!声明下代码验证过,没问题的!http://blog.csdn.net/yejingtao703/archive/2009/02/13/3887364.aspx不知道楼主能不能看!? 欢迎加好友去我博客! 用ajax提交,现在的级联一般都是用的ajax实现的当你选择第一个下拉框时,你得到下拉框中的值,发起提交异步请求,然去查询数据库,把数据库中查询到的值,返回到页面,最后通过js修改第二个下拉框的值,这样就实现了联动 ajax 出现乱码了,硬是没有解决,换了个调用方法,使用dwr 。。 3楼方法不是动态的,不管用,谢谢12楼的资料,先研究下,没用过AJAX。 java.net.SocketTimeoutException: Async operation timed out 来杯咖啡,聊聊tomcat,resin并发量 java返回map到flex 请各位大侠多多指教 J2EE和linux的问题 struts一些基础问题解决???? 关于监控weblogic可能down机的问题 [急]如何用JAVA写出一个站内搜索 大家都来说说:用J2EE架构的系统,WINDOWS下开发,之后可能要转到UINIX下或LINUX下运行,开发过程中该注意哪些问题? 关于用JAVA实现网络传真的问题 如何用java画各种概率分布图 有没有熟悉jsf的?
<td width="126">
<select name="searchFirst" id="searchFirst" onchange="selectChange()">
<option name="searchmaxid" value="-1">--请选择--</option>
<c:forEach items="${requestScope.mcType}" var="first">
<c:if test="${first.npid==0}">
<option name="smaxid" value="${first.nid}">${first.sname }</option>
</c:if>
</c:forEach>
</select></td>
第二个下拉
<td width="95">
<select name="searchSecond" value="${param.searchSecond}">
<option name="serachminid" value="-1">--请选择--</option>
</select>
</td>
方法:function selectChange(){
var second_npid=document.getElementById("searchSecond");
searchForm.searchSecond.options.length=1;
var first_nid=document.getElementById("searchFirst").value;
for(i=0;i<${j};i++){
if(array_2[i].npid==first_nid){
searchForm.searchSecond.options.add(new Option(array_2[i].sname,array_2[i].nid));
}
}
只是在调用服务器端方法的时候,最好就用ajax的异步刷新技术。这样不用每做次改变都要让页面刷新一下
<HEAD>
<TITLE>动态改变下拉菜单内容示例</TITLE>
</HEAD>
<SCRIPT LANGUAGE=javascript>//定义一个二维数组aArray,用于存放城市名称。
var aCity=new Array();
aCity[0]=new Array();
aCity[1]=new Array();
aCity[2]=new Array();
aCity[3]=new Array();
//赋值,每个省份的城市存放于数组的一行。
aCity[0][0]="--请选择--";
aCity[1][0]="--请选择--";
aCity[1][1]="广州市";
aCity[1][2]="深圳市";
aCity[1][3]="珠海市";
aCity[1][4]="汕头市";
aCity[1][5]="佛山市";
aCity[2][0]="--请选择--";
aCity[2][1]="长沙市";
aCity[2][2]="株州市";
aCity[2][3]="湘潭市";
aCity[3][0]="--请选择--";
aCity[3][1]="杭州市";
aCity[3][2]="苏州市";
aCity[3][3]="温州市";
function ChangeCity()
{
var i,iProvinceIndex;
iProvinceIndex=document.frm.optProvince.selectedIndex;
iCityCount=0;
while (aCity[iProvinceIndex][iCityCount]!=null)
iCityCount++;
//计算选定省份的城市个数
document.frm.optCity.length=iCityCount;//改变下拉菜单的选项数
for (i=0;i<=iCityCount-1;i++)//改变下拉菜单的内容
document.frm.optCity[i]=new Option(aCity[iProvinceIndex][i]);
document.frm.optCity.focus();
} </SCRIPT><BODY ONfocus=ChangeCity()>
<H3>选择你所在的省份及城市</H3>
<FORM NAME="frm">
<P>省份:
<SELECT NAME="optProvince" SIZE="1" ONCHANGE=ChangeCity()>
<OPTION>--请选择--</OPTION>
<OPTION>广东省</OPTION>
<OPTION>湖南省</OPTION>
<OPTION>浙江省</OPTION>
</SELECT>
</P>
<P>城市:
<SELECT NAME="optCity" SIZE="1">
<OPTION>--请选择--</OPTION>
</SELECT>
</P>
</FORM>
</BODY>
</HTML>
楼主可以去看看,参考下
声明下代码验证过,没问题的!
http://blog.csdn.net/yejingtao703/archive/2009/02/13/3887364.aspx
不知道楼主能不能看!? 欢迎加好友去我博客!
当你选择第一个下拉框时,你得到下拉框中的值,发起提交异步请求,然去查询数据库,把数据库中查询到的值,返回到页面,最后通过js修改第二个下拉框的值,这样就实现了联动