用JSP實現下拉列表框三級聯動效果

          Posted on 2006-12-20 15:03 flustar 閱讀(4598) 評論(4)  編輯  收藏 所屬分類: J2ee

          一、在數據庫數據庫中建立三個表
          1.city
          字段:
          districtname,locationid,districtid
          2.province
          字段:
          locationid,locationname
          3.village
          字段:
          villageid,villagename,districtid
          二、代碼如下:
          <%@ page language="java" contentType="text/html; charset=gb2312"
          ??? pageEncoding="gb2312"%>
          <%@ page import="java.sql.* "%>
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
          <title>jsp實現三級聯動的下拉列表框效果</title>
          <%
          ?? Connection conn=null;
          ?? Statement stmt=null;
          ?? ResultSet rs=null,rs1=null,rs2=null;
          ?? String sql;
          ?? int count;
          ?? int count2;
          ?? String drivername="com.microsoft.jdbc.sqlserver.SQLServerDriver";
          ?? String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=SJLD";
          ?? try{
          ??? Class.forName(drivername);
          ??? conn=DriverManager.getConnection(url,"sa","");
          ??? stmt=conn.createStatement();
          ??? sql="select * from city order by locationid asc";
          ??? rs=stmt.executeQuery(sql);
          ?? }catch(SQLException e){
          ??? System.out.println(e.getMessage());
          ?? }
          ??
          %>
          <script language="javascript">
          var onecount;
          onecount=0;
          subcat=new Array();
          <%
          count=0;
          while(rs.next()){
          ?%>
          ?subcat[<%=count%>]=new Array("<%=rs.getString("districtname")%>","<%=rs.getInt("locationid")%>","<%=rs.getInt("districtid")%>");
          ?<%
          ?count = count + 1 ;

          }
          rs.close();
          rs=null;
          %>
          onecount=<%=count%>;
          function changelocation(locationid){
          document.myform.smalllocation.length=0;
          var locationid=locationid;
          var i;
          document.myform.smalllocation.options[0]=new Option('==所選城市的地區==','');
          for(i=0;i<onecount;i++){
          if (subcat[i][1] == locationid)
          {
          document.myform.smalllocation.options[document.myform.smalllocation.length] = new Option(subcat[i][0], subcat[i][2]);
          }
          }

          ??
          }
          </script>
          <%
          ?sql="select * from village order by districtid asc";
          ?rs2=stmt.executeQuery(sql);
          %>
          <script language="javascript">
          var onecount2;
          onecount2=0;
          subcat2=new Array();
          <%
          count2=0;
          while(rs2.next()){
          ?%>
          ?subcat2[<%=count2%>]=new Array("<%=rs2.getString("villagename")%>","<%=rs2.getInt("districtid")%>","<%=rs2.getInt("villageid")%>");
          ?<%
          ?count2 = count2 + 1 ;

          }
          rs2.close();
          rs2=null;
          %>
          onecount2=<%=count2%>;
          function changelocation2(districtid)
          {
          document.myform.village.length = 0;

          var districtid=districtid;
          var j;
          document.myform.village.options[0] = new Option('==所選地區的縣區==','');
          for (j=0;j < onecount2; j++)
          {
          ? if (subcat2[j][1] == districtid)
          ?{
          ? document.myform.village.options[document.myform.village.length] = new Option(subcat2[j][0], subcat2[j][2]);
          ? }
          }

          }
          </script>

          </head>
          <body>
          <form name="myform" method="post">
          分類:<select name="biglocation" onChange="changelocation(document.myform.biglocation.options[document.myform.biglocation.selectedIndex].value)" size="1">
          <option selected>請選擇你所在的省份</option>
          <%
          ? sql ="select * from province order by locationname asc";
          ?rs1 = stmt.executeQuery(sql);
          ?while(rs1.next()){
          ?%>
          ?<option value="<%=rs1.getInt("locationid")%>"><%=rs1.getString("locationname")%></option>

          ?<% }
          ?
          ?
          ?rs1.close();
          ?rs1 = null;
          ?conn.close();
          ?conn =null;


          %>
          </select><select name="smalllocation" onChange="changelocation2(document.myform.smalllocation.options[document.myform.smalllocation.selectedIndex].value)">
          <option selected value="">==所有地區==</option>
          </select><select name="village" size="1">
          <option selected>==所有縣區==</option>
          </select>
          </form>

          </body>
          </html>

          Feedback

          # re: 用JSP實現下拉列表框三級聯動效果  回復  更多評論   

          2007-06-06 17:39 by Carja
          能運行嗎?我看蠻好的!

          # re: 用JSP實現下拉列表框三級聯動效果  回復  更多評論   

          2007-09-18 10:18 by Vivion
          謝謝樓主分享!

          # re: 用JSP實現下拉列表框三級聯動效果  回復  更多評論   

          2007-11-11 12:38 by programmer
          真的很好,先謝謝了哦

          # re: 用JSP實現下拉列表框三級聯動效果  回復  更多評論   

          2008-05-02 21:10 by 讓我慢慢的靠近你 以后告訴你
          可不可以只建一張表啊?加我QQ哈 564757891 我愛你~??! 呵呵

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          posts - 146, comments - 143, trackbacks - 0, articles - 0

          Copyright © flustar

          主站蜘蛛池模板: 武山县| 阜康市| 永清县| 内乡县| 鲁山县| 盘锦市| 高州市| 蛟河市| 岳阳县| 门源| 河北区| 开平市| 喀喇| 陈巴尔虎旗| 包头市| 高邑县| 馆陶县| 天水市| 达拉特旗| 安图县| 珲春市| 龙胜| 昭平县| 宜兴市| 格尔木市| 达孜县| 广州市| 三河市| 横山县| 武隆县| 松江区| 郁南县| 扶余县| 夹江县| 鄂托克前旗| 出国| 建宁县| 永靖县| 安图县| 商城县| 大邑县|