日期:2014-05-18  浏览次数:20601 次

jsp三级联动加数据库的一些问题(急)
三级联动基本功能可以实现,但有点问题,当选择第一个下拉框时,
第二个下拉框会随着改变,但第三个下拉框不会随着变化。
代码如下:
<%@ page contentType="text/html; charset=UTF-8" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="stella.eip.UserInfo"%>
<%@ page import="stella.eip.UserAction"%>
<%@ include file="checkSession.jsp"%>
<HTML>
<HEAD>
<TITLE>新增用户</TITLE>
<LINK href="../Inc/css.css" type="text/css" rel=stylesheet>
<SCRIPT language=JavaScript src="../Inc/msg.js"></SCRIPT>
<link rel="StyleSheet" href="../Inc/dtree.css" type="text/css" />
<script type="text/javascript" src="dtree.js"></script>
<script language="javascript">
<!--
function addVendor(a) { document.addUserForm.EIPSYS.value=a; }
//-->
</script>
</HEAD>
<jsp:useBean id="OracleConn" scope="application" class="stella.eip.OracleConn"/>
<body leftmargin="0" topmargin="0">
<script language="javascript">
<!--
document.write(userAddress("<fmt:message key="seat"/> : 用户管理 >> 修改用户"));
//-->
</script><br>
<%
UserInfo uInfo = (UserInfo)session.getAttribute("EIP_USERINFO");
String addMan = uInfo.getUserLogin();
String addAdmin = uInfo.getUserAdmin();
String userid = request.getParameter("userid");

if(addAdmin.equals("Y")||addAdmin.equals("M")||userid!=null){

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
String userip = request.getRemoteAddr();
String userlogin ="",username="",mailserver="",internetadd="",companyname="",factno="";
int deptid=0;
int userlock=0;
int teamid=0;
int interview=0;
int ye=0;
int eipsys=0;
String smanager="",phone="",userfactid="",otheradmin="";

try{
conn = OracleConn.getConnection();//连接数据库
stmt = conn.createStatement();
  ye=1;
factno="WE"; //上个页面传递过来的参数
deptid=1; //上个页面传递过来的参数

if(ye==1){
%>
<script language="JavaScript">  
  var onecount;  
  onecount=0;  
  subcat =new Array(); // 建立数组
<% 
int count;
rs=stmt.executeQuery("SELECT A.DID,A.DEPTNAME,B.FACTNO FROM EIP_DEPT A,EIP_FACT B WHERE A.FID=B.FID ORDER BY A.DID "); //打开数据库,这里我用的是javabean链接JDBC的方法
count=0;
while(rs.next())

%>  
subcat[<%=count%>] = new Array("<%=rs.getString(1)%>","<%=rs.getString(2)%>","<%=rs.getString(3)%>"); //给数组赋值,其中rs0.getString(1)代表第1字段,这里不要搞错字段哦
<%
count=count+1;
}
rs.close();
%>
onecount=<%=count%>;
function changelocation(id) //实现函数
  {
  document.addUserForm.DEPTID.length = 0; 
  var id=id;
  var i;//如果i从1循环那么记录中第1行的信息就看不到了
  for (i=0;i<onecount; i++) //从数组的第1行算起 查找id ,这里的id是你大类的id(下面有我的数组例子)
  {
  if (subcat[i][2] ==id) //第一次循环从第1行,第3列,那1列是大类ID
  { 
  document.addUserForm.DEPTID.options[document.addUserForm.DEPTID.length] = new Option(subcat[i][1], subcat[i][0]); //导出数组,导出小类名称和小类ID
  }