我想在jsp页面做下拉框联动 当一个下拉框获得值时,另一个下拉框跟着前面的下拉框的数值变化,注意:下拉框中的值跟数据库
连着的,请各位留下思路或者代码例子

解决方案 »

  1.   

    判断前一下拉框当前值,ajax取下一下拉框,不行吗?
      

  2.   

    不用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));
    }
    }
      

  3.   

    刚才写错了,就触发select的onChange()方法,不是onblur,其实要用onblur方法也可以的。
      

  4.   

    页面上就用三楼的方法来处理,
    只是在调用服务器端方法的时候,最好就用ajax的异步刷新技术。这样不用每做次改变都要让页面刷新一下
      

  5.   

    <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> 
      

  6.   

    我的资源里有个AJAX下拉条联动源码,注释的很详细了,下载后连上数据库即可使用
    楼主可以去看看,参考下
      

  7.   

    array_2[i].npid 都是什么意思啊?
      

  8.   

    array_2[i]  是 怎么传进来的请给提示。
      

  9.   

    我做过一个省份和城市的下拉框的2级联动,在我的博客里面,各层的代码都有,你可以加我好友去我的博客看下,跟你的需求是一样的!
    声明下代码验证过,没问题的!
    http://blog.csdn.net/yejingtao703/archive/2009/02/13/3887364.aspx
    不知道楼主能不能看!? 欢迎加好友去我博客!
      

  10.   

    用ajax提交,现在的级联一般都是用的ajax实现的
    当你选择第一个下拉框时,你得到下拉框中的值,发起提交异步请求,然去查询数据库,把数据库中查询到的值,返回到页面,最后通过js修改第二个下拉框的值,这样就实现了联动
      

  11.   

      ajax 出现乱码了,硬是没有解决,换了个调用方法,使用dwr 。。
      

  12.   

    3楼方法不是动态的,不管用,谢谢12楼的资料,先研究下,没用过AJAX。