<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@page import="com.teach.util.DBConn"%>
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>实验教学资源管理系统</title>
<link rel="stylesheet" rev="stylesheet" href="../css/style.css"
type="text/css" media="all" />
<style type="text/css">
<!--
.atten {
font-size: 12px;
font-weight: normal;
color: #F00;
}
-->
</style>
<script type="text/javascript">
function check()
{

if(document.fom.studentName.value.length<1)
{
alert("请输入学生姓名!");
return false;
}
var age1=document.fom.age.value;
if(age1.length<1){
alert("请输入学生年龄!");
}else{


for(i=0;i<age1.length;i++)
{
if(age1.charAt(i)<"0")
{
alert("请输入有效年龄!");
return false;
}
else if(age1.charAt(i)>"9")
{
alert("请输入有效年龄!");
return false;
}
}
}
if(document.fom.address.value.length<1)
{
alert("请输入学生籍贯!");
return false;
}
if(document.fom.birthday.value.length<1)
{
alert("请输入学生生日!");
return false;
}
if(document.fom.sex.value.length<1)
{
alert("请选择学生性别!");
return false;
}
if(document.fom.department.value.length<1)
{
alert("请选择院系!");
return false;
}
if(document.fom.class1.value.length<1)
{
alert("请选择班级!");
return false;
}
}
function chg_select2(n)
{

 var arr   =   new   Array(); 
 
            <%     
            DBConn dbConn2=new DBConn();
            Connection conn2=dbConn2.DBConnect();
        Statement st2=conn2.createStatement();
        ResultSet rs2=st2.executeQuery("select count(*) as num from department");
            int count=0;
            while(rs2.next()) 
             count =rs2.getInt("num");
             System.out.println("count=:"+count);
              for(int i=1;i<=count;i++)
              {
              rs2=st2.executeQuery("select*from class where departmentId="+i);
              int j=0;
              while(rs2.next())
              { j++;
              %>
              arr[<%=i%>][<%=j%>]=new Array("<%=rs2.getString("className")%>");
             <%}
               }
               System.out.println("wangxifengtest");
               %>
   

             for (i=0;i<arr[n].length;i++) class1.options[2]=new Option(arr[n][i],arr[n][i]); 
              } 
              } 
}
</script>
</head>
<%
Map<Integer,String> deps=new HashMap<Integer,String>(); 
int depnums=0;
Map<Integer,String> clas=new HashMap<Integer,String>();
int clanums=0;
DBConn dbConn=new DBConn();
Connection conn=dbConn.DBConnect();
Statement st=conn.createStatement();
ResultSet rs=st.executeQuery("select * from department");
while(rs.next()){
deps.put(rs.getInt("departmentId"),rs.getString("departmentName"));
depnums++;
System.out.println(depnums);
}
rs=st.executeQuery("select * from class");
while(rs.next()){
clas.put(rs.getInt("classId"),rs.getString("className"));
clanums++;
System.out.println(clanums);
}

dbConn.DBclose(rs);
dbConn.DBclose(st);
dbConn.DBclose(conn);
 %>
<body class="ContentBody">
<form action="addstudent" method="post" name="fom" id="fom" target="mainFrame" onsubmit="return check();">
<div class="MainDiv">
<table width="99%" border="0" cellpadding="0" cellspacing="0"
class="CContent">
<tr>
<th class="tablestyle_title">
学生添加页面
</th>
</tr>
<tr>
<td class="CPanel"> <table border="0" cellpadding="0" cellspacing="0"
style="width: 100%"> <tr>
<td width="100%">
<fieldset style="height: 100%;">
<legend>
添加学生
</legend>
<table border="0" cellpadding="2" cellspacing="1"
style="width: 100%"> <tr>
<td nowrap align="right" width="13%">
姓名:
</td>
<td width="41%">
<input name="studentName" class="text" style="width: 154px"
type="text" size="20" />
<td align="right" width="19%">
年龄:
</td>
<td width="27%">
<input name="age" id="Input22" class="text"
style="width: 154px" />
</td>
</tr>
<tr>
<td nowrap align="right">
籍贯:
</td>
<td>
<input name="address" id="address" class="text" style="width: 154px" />
</td>
<td align="right">
生日:
</td>
<td>
<input name="birthday" id="Input" class="text"
style="width: 154px" />
</td>
</tr>
<tr>
<td nowrap align="right">
性别:
</td>
<td>
<select name="sex" style="width: 130px">
<option class="align:center">
=====请选择=====
</option >
<option  selected="selected" value="male">

</option>
<option value="female">

</option>
</select>
</td> </tr>
<tr>
<td nowrap align="right">
院系:
</td>
<td>
<select name="department" style="width: 130px" onChange="chg_select2(this.selectedIndex);">
<option  class="align:center">
=====请选择=====
</option>
<%
int i;
for(i=1;i<=deps.size();i++){
if(deps.containsKey(i)){
%>
<option  value="<%=i%>">
<%out.print(deps.get(i)); 
%>
</option>
<%
}}
 %>

</select>
</td> </tr>
<tr>
<td nowrap align="right">
班级:
</td>
<td>
<select name="class1" style="width: 130px">
<option  class="align:center">
=====请选择=====
</option>

</select>
</td> </tr> </table>
<br />
</fieldset>
</td>
</tr> </table>
</td>
</tr>
<tr>
<td colspan="2" align="center" height="50px">
<input type="submit"  value="保存" class="button"/> <input type="button"  value="返回" class="button"
onclick="window.history.go(-1);" />
</td>
</tr>
</table>
</div>
</form>
</body>
</html>

解决方案 »

  1.   

    <select name="department" style="width: 130px" onChange="chg_select2(this.selectedIndex);">
    不起作用???请各位帮忙看看。
      

  2.   

    <select name="department" style="width: 130px" onChange="chg_select2(this.selectedIndex);">改为<select name="department" style="width: 130px" onChange="chg_select2(this.options.selectedIndex);">
      

  3.   

    <select name="department" style="width: 130px" onChange="chg_select2(this.selectedIndex);">
    不好意思 我搞错了 你这句没错下面js代码里怎么能全用<%%>JSP代码呢
    我感觉好奇怪。。
    function chg_select2(n)
    {
    var arr = new Array();    
      <%   
      DBConn dbConn2=new DBConn();
      Connection conn2=dbConn2.DBConnect();
    Statement st2=conn2.createStatement();
    ResultSet rs2=st2.executeQuery("select count(*) as num from department");
      int count=0;
      while(rs2.next())  
      count =rs2.getInt("num");
      System.out.println("count=:"+count);
      for(int i=1;i<=count;i++)
      {
      rs2=st2.executeQuery("select*from class where departmentId="+i);
      int j=0;
      while(rs2.next())
      { j++;
      %>
      arr[<%=i%>][<%=j%>]=new Array("<%=rs2.getString("className")%>");
      <%}
      }
      System.out.println("wangxifengtest");
      %>
        for (i=0;i<arr[n].length;i++) class1.options[2]=new Option(arr[n][i],arr[n][i]);  
      }  
      }  
    }
    </script>
      

  4.   

    还是那段JS里面有问题用out.println()打印看下结果测试吧
      

  5.   

    <%@ page contentType="text/html; charset=GB2312" language="java" %> 
    <%@ page language="java" import="java.util.*,java.sql.*,liand.*" pageEncoding="GBK"%><jsp:useBean id="sqlBean" class="liand.SqlBean"></jsp:useBean><HTML>
    <HEAD> 
    <META http-equiv=Content-Type content="text/html; charset=gb2312">
    <TITLE>级联菜单</TITLE> 
    <LINK rel=stylesheet type=text/css href=style.css> 
    </HEAD> 
    <!--从数据库中得到二级栏目信息--> 
    <%String sql="select * from Nclass order by NclassId asc"; 
    ResultSet rs=sqlBean.executeQuery(sql);%> 
    <!--将二级栏目信息保存到数组subcat中--> 
    <script type="text/javascript"> 
    var onecount; 
    onecount=0; subcat = new Array();         <% 
            int count = 0; 
            while(rs.next()){ 
            %> 
    subcat[<%=count%>] = new Array(<%=rs.getString("NclassName")%>,
    <%=rs.getString("NclassId")%>,<%=rs.getString("parentId")%>); 
            <% 
            count++; 
            } 
           rs.close(); 
            %> 
    onecount=<%=count%>; 
       
      %>
    <!--决定select显示的函数--> 
    function changelocation(locationid) 
        { 
       alert("嗨! 你好"); 
       
        document.myform.NclassId.length = 0; 
        document.write("locationid:="+locationid);
        var locationid=locationid; 
        var i; 
        for (i=0;i < onecount; i++) 
            { 
                if (subcat[i][2] == locationid) 
                { 
                   
                   var newOption1= new Option(subcat[i][0], subcat[i][1]);
                   document.myform.NclassId.add(newOption1);
                   
                }        
            }
        }    
    </script>
    <body>
    <FORM method="POST" name="myform" action="adminsave.jsp?action=add"> 
       <TABLE> 
       
        <TR> 
          <TD>一级分类</TD> 
          <TD>  
            <SELECT name="classId" onChange="changelocation(document.myform.classId.options[document.myform.classId.selectedIndex].value);" size="1"> 
              <OPTION selected value>==请选一级分类==</OPTION> 
              <%
              sql="select* from class";
              rs=sqlBean.executeQuery(sql);
              while(rs.next())
              {%>
              <option value="<%=rs.getString("classId")%>"><%=rs.getString("className")%></option> 
             
              <%
              }
              rs.close();
               %>
    </select> 
          </TD> 
          <TD>选择二级分类</TD> 
          <TD> 
            <SELECT name="NclassId"> 
              <OPTION selected value>==请选二级分类==</OPTION> 
            </SELECT> 
          </TD> 
        </TR> 
    </TABLE>
    </FORM> 
    </BODY> 
    </HTML>
      

  6.   

    你真是难为人啊 这种代码看起来真头疼。你最好多alert 一下 看到底是到那一步出不来,自己学会调试吧。
    我大致看了下 你好像是先将所有的2级菜单查出来,然后没看懂你怎么做的。
    我一般的做法是,根据一级菜单选取的值,再到数据库去查,然后生成2级菜单
      

  7.   

    连alert都没有反映,请大家帮我看看,谢谢了。
      

  8.   

    alert 没反应就说明你JS没调用到那个地方啊。