|
<% /************************** *数据库pTable 省份表: *id -- pName *数据库cTable 城市表: *id -- cName --(int)pID *id ---pID 关联: *数据库名:pcData * * By Alec Cheung * http://cheung.cxc.cc * http://www.andyfans.com/97741/ * msn:eboysit@hotmail.com *****************************/ %> <% /***文件conn.jsp 用于连接数据库*******/ <%@ page contentType="text/html; charset=GBK" %> <%@ page import="java.sql.*,java.lang.*,java.util.*;"%> <% Connection conn=null; Statement stmt=null,stmtc=null; ResultSet rs=null,rsc=null; Class.forName("org.gjt.mm.mysql.Driver").newInstance(); conn=java.sql.DriverManager.getConnection("jdbc:mysql://localhost:3306/pcData?user=root&password=root&useUnicode=true&characterEncoding=GBK"); stmt=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); stmtc=conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY); /*conn.jsp 结束*/ %> <%/*****文件st.jsp用于显示所有省份名*******/%> <%@ page contentType="text/html; charset=GBK" %> <%@ page include="conn.jsp" %> <%
String sql="select pName from pName order by id desc"; rs=stmt.executeQuery(sql); out.println("<form name=\"myform\"><select name=\"group\" onChange='change_area(document.myform)'>"); out.println("<option value='javascript:void(0)'>请选择</option>"); while(rs.next()){ out.println("<option value="+rs.getString("pName")+">"+rs.getString("pName")+"</option>"); } out.println("</select>"); rs.close(); out.println("<select name=\"city\">"); out.println("<option value=\"请选择\">请选择</option>"); out.println("</select><script src=\"changlist.jsp\"></script>"); //注意此处的代码 out.println("<input type=\"button\" value=\" SUB \" onClick=\"alert(city.value);\"></form>"); //文件st.jsp 结束 %> <%/*****文件changlist.jsp用于显示所有城市名*******/%> <%@ page contentType="text/html; charset=GBK" %> <%@ page include="conn.jsp" %> <%///以下是调用一些脚本文件//%> function aClass(aData, aValue, aText) { if (aClass.arguments.length < 3) alert("传入的参数错误!") else { this.Data = aData; this.Value = aValue; this.Text = aText; } }
function chgDnCombobox(aSrc, aDes, aClass, aRemain){ if (chgDnCombobox.arguments.length < 3) alert("传入的参数错误!") else if (aSrc.type != "select-one") alert("传入的参数错误!") else if (aClass == null) alert("aClass未定义错误!") else { if (aRemain==null) aRemain = 1; chgDnComboboxItem(aSrc.options[aSrc.selectedIndex].value, aDes, aClass, aRemain); } }
function chgDnComboboxItem(aValue, aDes, aClass, aRemain){ if (chgDnComboboxItem.arguments.length<3) alert("参数传入错误!") else if (aClass==null) alert("错误!aClass没有定义!") else{ if (aRemain==null) aRemain = 1; deleteAllComboboxItem(aDes, aRemain); for (var i=0; i<aClass.length; i++) if (aClass[i].Data==aValue) /* check aClass[i].Data */ if (aClass[i].Data!="") addComboboxItem(aDes, aClass[i].Text, aClass[i].Value); } }
function deleteAllComboboxItem(aList, aRemain) { for (var i=aList.options.length; i > aRemain-1; i--) aList.options[i] = null; }
function addComboboxItem(aList, aText, aValue) { var aOption = new Option(aText, aValue); eval("aList.options[aList.options.length]=aOption"); }
//数据区,可以在这里添加数据 function change_area(aForm) { chgDnCombobox(aForm.group, aForm.city, f_Set0 , 0); }
function onchg(aForm)
var f_Set0 = new Array( <% //脚本结束开始读取数据库 String sql="select cName,pID from cTable order by id desc"; rs=stmt.executeQuery(sql); while(rs.next()){ String sqlc = "select pName from pTable where id ="+rs.getInt("pID"); //注意此处外循环 先选环省份 是因为没个省份至少有一个城市 rsc = stmtc.executeQuery(sqlc); while(rsc.next()){ out.println("new aClass('"+rsc.getString("pName")+"','"+rs.getString("cName")+"','"+rs.getString("cName")+"'),"); } rsc.close(); } rs.close(); %> new aClass("End", "End", "End")); <% /*changlist.jsp 结束 * * 以上程序没有问题,你可以到我的网站上看看。 * * 至于用ArrayList or Hashtable 我还没想到。 * *这样可能不是最好的程序但是可以实现你的要求 */%>
|