javascript级联菜单,数据从数据库中获取

简介:
1
1 .html代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<%@ page contentType= "text/html; charset=gb2312"  %>
<%@ page  import = "java.sql.*"  %>
 
<html>
<head>
<!--
放置javascript代码
-->
</head>
 
<body style= "font-size: 12px;"  bgcolor= "eeeeee" >
<form name= "form1"  action= "SpecialityRelation_Insert.jsp"  method= "get" >
<img onclick= "history.go(-1);"  src= "../../images/back_blue.gif"  onmousemove= "this.src='../../images/back_red.gif';"  onmouseout= "this.src='../../images/back_blue.gif'"  style= "cursor:hand;" >
<hr>
 
<%
     String logicalclass_name = request.getParameter( "name" );
     String logicalclass_id = request.getParameter( "logicalclass_id" );
%>
 
<input name= "logicalclass_id"  value= "<%=logicalclass_id%>"  type= "hidden" >
<table border= "1px" >
<tr>
<td width= "100px" >教学班名称</td>
<td width= "300px" >
<input  class = "MyInputBox"  name= "name"  value= "<%=logicalclass_name%>"  style= "background:'#dddddd';"  size= "50"  readonly/>
</td>
</tr>
<tr>
<td>所在专业</td>
<td>
<select  class = "MySelect"  name= "department"  size= "1"  id= "department"  onChange= "changeDepartment(document.form1.department.options[document.form1.department.selectedIndex].value)" >
<%
     rs = myDao.execQuery( "select * from department" );
     i= 0 ;
     for (rs.next();!rs.isAfterLast();rs.next(),i++)
     {
%>
<option value= "<%=rs.getString(" id ")%>" ><%=rs.getString( "Department_name" )%></option>
<% 
     }
%>
</select>
 
<select  class = "MySelect"  name= "division"  size= "1"  id= "division"  onChange= "changeDivision(document.form1.division.options[document.form1.division.selectedIndex].value)" >
</select>
 
<input type= "hidden"  name= "Switch"  value= "false" >
 
<select  class = "MySelect"  name= "speciality"  id= "speciality"  size= "1"  onChange= "changeSpeciality(document.form1.speciality.options[document.form1.speciality.selectedIndex].value)" ></select>
 
<select  class = "MySelect"  name= "Grade"  id= "Grade"  size= "1"  onChange= "changeGrade(document.form1.Grade.options[document.form1.Grade.selectedIndex].value)" >
</select>
 
<select  class = "MySelect"  name= "ObjectID"  size= "1" >
</select>
 
</td>
</tr>
 
 
<tr>
<td>说明</td>
<td><textarea name= "other"  class = "MyTextArea"  name= "other"  cols= "48"  rows= "10" ></textarea></td>
</tr>
 
<tr>
<td colspan= "2"  align= "right" >
<img src= "../../images/submit_blue.gif"  onmousemove= "this.src='../../images/submit_red.gif';"  onmouseout= "this.src='../../images/submit_blue.gif'"  style= "cursor:hand;"  onclick= "document.form1.submit();"
</td>
</tr>
</table>
</form>
</body>
</html>

  

1
<br>

 2.javascript代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
2 .javascript代码
<script language= "javascript" >
 
var DeparmentCount;  //三级联动菜单代码
DeparmentCount =  0 ;
var DivisionCount;
DivisionCount =  0 ;
var SpecialityCount;
SpecialityCount =  0 ;
 
//GradeCount = 0;
ObjectIDCount =  0 ;
Department =  new  Array();
Division =  new  Array();
Speciality =  new  Array();
//Grade = new Array();
ObjectID =  new  Array();
 
<%
system.pub.oraclesql myDao =  new  system.pub.oraclesql();
ResultSet rs = myDao.execQuery( "select * from division" );
int  i= 0 ;
for (rs.next();!rs.isAfterLast();rs.next(),i++)
{
%>
         
Division[<%=i%>] =  new  Array( "<%=rs.getString(" Division_name ")%>" , "<%=rs.getString(" department_id ")%>" , "<%=rs.getString(" id ")%>" );
 
<% 
} //for
%>
         
DivisionCount = <%=i%>;
<%
     System.out.println( "debug....1" );
     rs = myDao.execQuery( "select * from speciality" );
     i= 0 ;
     for (rs.next();!rs.isAfterLast();rs.next(),i++)
     {
%>
             
Speciality[<%=i%>] =  new  Array( "<%=rs.getString(" Speciality_name ")%>" , "<%=rs.getString(" division_id ")%>" , "<%=rs.getString(" id ")%>" );
 
<% 
} //for
%>
  SpecialityCount = <%=i%>;
         
<%
     rs = myDao.execQuery( "select distinct speciality_id,grade,object_id,name from student t,object o where o.id= t.object_id" );
     i= 0 ;
     for (rs.next();!rs.isAfterLast();rs.next(),i++)
     {
%>
 
  ObjectID[<%=i%>] =  new  Array( "<%=rs.getString(" speciality_id ")%>" , "<%=rs.getString(" grade ")%>" , "<%=rs.getString(" object_id ")%>" , "<%=rs.getString(" name ")%>" );
 
<% 
} //for
%>
             
     ObjectIDCount = <%=i%>;
         
         
         
         function changeDepartment(DepartmentId)
         {
             document.form1.Switch.value= "false" ;
             document.form1.division.length =  0 ;
             var DepartmentId = DepartmentId;
             var i;
             for  (i= 0 ;i < DivisionCount; i++)
             {
                 if  (Division[i][ 1 ] == DepartmentId)
                 {
                     document.form1.division.options[document.form1.division.length] =  new  Option(Division[i][ 0 ], Division[i][ 2 ]);
                 }       
             }
             changeDivision(document.form1.division.value);
             if (document.form1.division.length!= 0 )
             {
                 document.form1.division.style.visibility =  'visible' ;
             }
             else
             {
                 document.form1.division.style.visibility =  'hidden' ;
            
             
         }
         
         function changeDivision(DivisionId)
         {
             document.form1.Switch.value= "false" ;
             document.form1.speciality.length =  0 ;
             var DivisionId = DivisionId;
             var i;
             for  (i= 0 ;i < SpecialityCount; i++)
             {
                 if  (Speciality[i][ 1 ] == DivisionId)
                 {
                     document.form1.speciality.options[document.form1.speciality.length] =  new  Option(Speciality[i][ 0 ], Speciality[i][ 2 ]);
                 }       
             }
             if (document.form1.speciality.length!= 0 )
             {
                 document.form1.speciality.style.visibility =  'visible' ;
             }
             else
            
                 document.form1.speciality.style.visibility =  'hidden' ;
                 document.form1.Grade.style.visibility =  'hidden' ;
                 document.form1.ObjectID.style.visibility =  'hidden' ;
                 
             }
             changeSpeciality(document.form1.speciality.value);
         }
         
         function changeSpeciality(SpecialityID)
         {
             document.form1.Switch.value= "false" ;
             document.form1.Grade.length =  0 ;
             var SpecialityID = SpecialityID;
             var i,j;
             var flag =  0 ;
             for  (i= 0 ;i < ObjectIDCount; i++)
             {
                 if (ObjectID[i][ 0 ] == SpecialityID)
                 {
                     for (j= 0 ,flag= 0 ;j<document.form1.Grade.length;j++)
                     {
                         if (document.form1.Grade.options[j].value==ObjectID[i][ 1 ])
                         {
                             flag =  1 ;
                             break ;
                         }
                     }
                     if (flag!= 1 )
                     {
                         document.form1.Grade.options[document.form1.Grade.length] =  new  Option(ObjectID[i][ 1 ], ObjectID[i][ 1 ]);
                     }
                 }       
             }
             if (document.form1.Grade.length!= 0 )
             {
                 document.form1.Grade.style.visibility =  'visible' ;
             }
             else
            
                 document.form1.Grade.style.visibility =  'hidden' ;
                 document.form1.ObjectID.style.visibility = 'hidden' ;
             }
             changeGrade(document.form1.Grade.value);
         }
         
         function changeGrade(GradeID)
         {
             document.form1.Switch.value= "false" ;
             document.form1.ObjectID.length =  0 ;
             var GradeID = GradeID;
             var i;
             for  (i= 0 ;i < ObjectIDCount; i++)
             {
                 if (ObjectID[i][ 1 ] == GradeID && ObjectID[i][ 0 ] == document.form1.speciality.value)
                 {
                     document.form1.ObjectID.options[document.form1.ObjectID.length] =  new  Option(ObjectID[i][ 3 ],ObjectID[i][ 2 ]);
                 }       
             }
             if (document.form1.ObjectID.length!= 0 )
             {
                 document.form1.ObjectID.style.visibility =  'visible' ;
             }
             else
            
                 document.form1.ObjectID.style.visibility =  'hidden' ;
             }
         }
         
         
         function  initialSelect()
         {
             changeDepartment(document.form1.department.options[document.form1.department.selectedIndex].value);
         }
         
         
         </script>

  

 本文转自二郎三郎博客园博客,原文链接:http://www.cnblogs.com/haore147/p/3617944.html,如需转载请自行联系原作者

相关文章
|
8天前
|
SQL NoSQL Java
彻底革新你的数据库操作体验!Micronaut数据访问技巧让你瞬间爱上代码编写!
【9月更文挑战第10天】Java开发者们一直在寻找简化应用程序与数据库交互的方法。Micronaut作为一个现代框架,提供了多种工具和特性来提升数据访问效率。本文介绍如何使用Micronaut简化数据库操作,并提供具体示例代码。Micronaut支持JPA/Hibernate、SQL及NoSQL(如MongoDB),简化配置并无缝集成。通过定义带有`@Repository`注解的接口,可以实现Spring Data风格的命名查询。
24 6
|
18天前
|
SQL 存储 数据处理
"SQL触发器实战大揭秘:一键解锁数据自动化校验与更新魔法,让数据库管理从此告别繁琐,精准高效不再是梦!"
【8月更文挑战第31天】在数据库管理中,确保数据准确性和一致性至关重要。SQL触发器能自动执行数据校验与更新,显著提升工作效率。本文通过一个员工信息表的例子,详细介绍了如何利用触发器自动设定和校验薪资,确保其符合业务规则。提供的示例代码展示了在插入新记录时如何自动检查并调整薪资,以满足最低标准。这不仅减轻了数据库管理员的负担,还提高了数据处理的准确性和效率。触发器虽强大,但也需谨慎使用,以避免复杂性和性能问题。
27 1
|
4天前
|
SQL 存储 数据库
MSSQL遍历数据库根据列值查询数据
【9月更文挑战第12天】在 SQL Server 中,可以通过游标或临时表遍历数据库并根据列值查询数据。示例展示了如何创建临时表存储数据库名,并通过循环遍历这些名称来执行特定查询。需替换 `YourTableName`、`YourColumnName` 和 `YourValue` 为实际值。此方法要求有足够权限访问各数据库。若无跨库权限,需分别执行查询。
|
10天前
|
前端开发 数据库 开发者
数据模型(数据库表设计)生成代码
BizWorks ToolKit 插件集成 Mybatis-Plus 代码生成工具,支持从数据库表批量生成代码,简化开发流程。本文详细介绍配置方法及项目示例,包括配置文件格式、生成选项及具体操作步骤,帮助开发者快速实现代码同步更新。配置文件 `.mp.yaml` 支持自定义输出目录、生成组件等,适用于多种项目结构。
23 0
|
18天前
|
测试技术 Java
全面保障Struts 2应用质量:掌握单元测试与集成测试的关键策略
【8月更文挑战第31天】Struts 2 的测试策略结合了单元测试与集成测试。单元测试聚焦于单个组件(如 Action 类)的功能验证,常用 Mockito 模拟依赖项;集成测试则关注组件间的交互,利用 Cactus 等框架确保框架拦截器和 Action 映射等按预期工作。通过确保高测试覆盖率并定期更新测试用例,可以提升应用的整体稳定性和质量。
31 0
|
18天前
|
Java 开发者 关系型数据库
JSF与AWS的神秘之旅:如何在云端部署JSF应用,让你的Web应用如虎添翼?
【8月更文挑战第31天】在云计算蓬勃发展的今天,AWS已成为企业级应用的首选平台。本文探讨了在AWS上部署JSF(JavaServer Faces)应用的方法,这是一种广泛使用的Java Web框架。通过了解并利用AWS的基础设施与服务,如EC2、RDS 和 S3,开发者能够高效地部署和管理JSF应用。文章还提供了具体的部署步骤示例,并讨论了使用AWS可能遇到的挑战及应对策略,帮助开发者更好地利用AWS的强大功能,提升Web应用开发效率。
42 0
|
18天前
|
开发者 UED Java
Play Framework惊天秘密:如何让异常处理优雅得像芭蕾舞?
【8月更文挑战第31天】在Web应用开发中,异常处理至关重要,直接影响应用稳定性和用户体验。Play Framework作为轻量级Java Web框架,提供了基于Scala偏函数的灵活异常处理机制。通过实现`HttpErrorHandler`接口可定义全局异常逻辑,而在控制器中使用try-catch块则能捕获特定异常。定义自定义异常类也有助于表示特定错误情况。最佳实践包括保持处理一致性、提供有用错误信息、记录日志及分类处理异常。掌握这些技巧,能使Play应用更健壮可靠。
38 0
|
18天前
|
SQL 数据库 开发者
全面提速你的数据访问:Entity Framework Core性能优化指南,从预加载到批量操作的最佳实践揭秘,打造高性能数据库交互体验
【8月更文挑战第31天】本文详细介绍如何在Entity Framework Core(EF Core)中优化数据访问性能,涵盖从创建项目到定义领域模型、配置数据库上下文的最佳实践。文章通过具体代码示例讲解了预加载、惰性加载、显式加载、投影及批量操作等技术的应用,并介绍了如何使用SQL查询和调整查询性能来进一步提升效率。通过合理运用这些技术,开发者可以构建出高效且响应迅速的数据访问层,提升应用程序的整体性能和用户体验。
29 0
|
18天前
|
SQL 数据可视化 数据挖掘
SQL 在数据分析中简直太牛啦!从数据提取到可视化,带你领略强大数据库语言的神奇魅力!
【8月更文挑战第31天】在数据驱动时代,SQL(Structured Query Language)作为强大的数据库查询语言,在数据分析中扮演着关键角色。它不仅能够高效准确地提取所需数据,还能通过丰富的函数和操作符对数据进行清洗与转换,确保其适用于进一步分析。借助 SQL 的聚合、分组及排序功能,用户可以从多角度深入分析数据,为企业决策提供有力支持。尽管 SQL 本身不支持数据可视化,但其查询结果可轻松导出至 Excel、Python、R 等工具中进行可视化处理,帮助用户更直观地理解数据。掌握 SQL 可显著提升数据分析效率,助力挖掘数据价值。
25 0