用JSP+SERVLET+JAVABEAN实现
JSP下拉列表二级联动.
两个列表中的内容都是从数据库中动态提取出来的!
从数据库中显示第一个下拉列表框中的内容,点击第一个中的内容然后在第二个列表框中从数据库中显示符合条件的记录。

解决方案 »

  1.   

    ajax
    以下是个人部分代码:可参考一下,另外网上有完整的ajax实现二级联动菜单,我就不全贴出来了var XMLHttpReq;
       var currentSort;
       function createXMLHttpRequest(){
       if(window.XMLHttpRequest){
       XMLHttpReq = new XMLHttpRequest();
       }else if(window.ActiveXObject){
       try{
       XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
       }catch(e){
       try{
       XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
       }catch(e){
      
       }
       }
       }
       }
       function sendRequest(url){
       createXMLHttpRequest();
       XMLHttpReq.open("GET",url,true);
       XMLHttpReq.onreadystatechange = processResponse;
       XMLHttpReq.send(null);
       }
       function processResponse(){
       if(XMLHttpReq.readyState == 4){
       if(XMLHttpReq.status == 200){
       updateMenu();
       }else{
       alert("获取城市信息错误");
       }
       }
       }
       function updateMenu(){
       var reskey = XMLHttpReq.responseXML.getElementsByTagName("reskey");
       var resvalue = XMLHttpReq.responseXML.getElementsByTagName("resvalue");
       var list = document.all.list;// 貌似是子菜单标示
       list.length = 0;
       list.add(new Option("---请选择---","0"));
       for(var i = 0;i < reskey.length; i++){
       list.add(new Option(resvalue[i].firstChild.data,reskey[i].firstChild.data));
       }
       }
       function showSubMenu(obj){
       sendRequest("updatemenu.jsp?sort="+obj);//这里是跳转到uodatemenu.jsp进行处理的
       }
    response.setContentType("text/xml;charset=UTF-8");
    response.setHeader("Cache-Control","no-cache");
            Hashtable cities = null;//这里是从数据库里查询出来的
    out.println("<response>");
    Iterator it = cities.entrySet().iterator();
    while(it.hasNext()){
    Map.Entry entry = (Map.Entry)it.next();
    out.println("<reskey>"+entry.getKey()+"</reskey>");
    out.println("<resvalue>"+entry.getValue()+"</resvalue>");
    }
    out.println("</response>");