打造JSP+JavaScript二级级联下拉菜单

开发 后端
在使用JSP JavaScript过程中有很多的技巧与实现,那么如何构建二级级联下拉菜单呢,本文将会向你做一个源码上的介绍。

那么我们开始JSP+JavaScript打造二级级联下拉菜单:

打造JSP JavaScript二级级联下拉菜单之变量的的定义:

◆class(一级栏目信息):

◆classId(自动编号)

◆className(栏目名称)

◆Nclass(二级栏目信息)

◆NclassId(自动编号)

◆NclassName(栏目名称)

◆parentId(一级栏目id,与class表中的classId关联)

  1. ﹤%@ page contentType=text/html; charset=GB2312 language=java errorPage=../error.jsp %﹥  
  2. ﹤%@ include file=../conn.jsp%﹥  
  3. ﹤%@ include file=../ds.jsp%﹥  
  4. ﹤%@ taglib uri=http://java.sun.com/jsp/jstl/sql divfix=sql %﹥  
  5. ﹤%request.setCharacterEncoding(gb2312); %﹥ 

打造JSP+JavaScript二级级联下拉菜单之级联菜单制作

  1. ﹤HTML﹥﹤HEAD﹥  
  2. ﹤META. http-equiv=Content-Type content=text/html; charset=gb2312﹥  
  3.  
  4. ﹤TITLE﹥级联菜单﹤/TITLE﹥  
  5. ﹤LINK rel=stylesheet type=text/css href=style.css﹥  
  6. ﹤/HEAD﹥ 

◆从数据库中得到二级栏目信息

  1. ﹤%String sql=select * from Nclass order by NclassId asc;  
  2. ResultSet rs=stmt.executeQuery(sql);  
  3. %﹥  


◆将二级栏目信息保存到数组subcat中

  1. ﹤script. type=text/javascript﹥  
  2. var onecount;  
  3. onecount=0;  
  4. subcat = new Array();  
  5.         ﹤%  
  6.         int count = 0;  
  7.         while(rs.next()){  
  8.         %﹥  
  9. subcat[﹤%=count%﹥] = new Array(﹤%=rs.getString(NclassName)%﹥,  
  10. ﹤%=rs.getString(NclassId)%﹥,﹤%=rs.getString(parentId)%﹥);  
  11.         ﹤%  
  12.         count++;  
  13.         }  
  14.         rs.close();  
  15.         %﹥  
  16. onecount=﹤%=count%﹥;  

◆决定Select显示的函数

  1.  
  2. function changelocation(locationid)  
  3.     {  
  4.     document.myform.NclassId.length = 0;  
  5.  
  6.     var locationidlocationid=locationid;  
  7.     var i;  
  8.     for (i=0;i ﹤ onecount; i++)  
  9.         {  
  10.             if (subcat[i][2] == locationid)  
  11.             {  
  12.                 document.myform.NclassId.options[document.myform.NclassId.length] = new  
  13. Option(subcat[i][0], subcat[i][1]);  
  14.             }         
  15.         }  
  16.          
  17.     }     
  18. ﹤/script﹥  

◆JSP JavaScript二级级联菜单的制作

  1. ﹤FORM. method=POST name=myformaction=adminsave.jsp?action=add﹥  
  2.   ﹤TABLE﹥  
  3.     
  4.     ﹤TR﹥  
  5.       ﹤TD﹥一级分类﹤/TD﹥  
  6.       ﹤TD﹥   
  7.         ﹤SELECT name=classId nChange=changelocation(document.myform.classId.options  
  8. [document.myform.classId.selectedIndex].value) size=1﹥  
  9.           ﹤OPTION selected value﹥==请选一级分类==﹤/OPTION﹥  
  10.         ﹤sql:query var=query dataSource=$﹥  
  11.           SELECT * FROM class  
  12.        ﹤/sql:query﹥  
  13. ﹤c:forEach var=row items=$﹥  
  14.  ﹤option value=$﹥$﹤/option﹥  
  15. ﹤/c:forEach﹥  
  16. ﹤/select﹥  
  17.       ﹤/TD﹥  
  18.       ﹤TD﹥选择二级分类﹤/TD﹥  
  19.       ﹤TD﹥  
  20.         ﹤SELECT name=NclassId﹥  
  21.           ﹤OPTION selected value﹥==请选二级分类==﹤/OPTION﹥  
  22.         ﹤/SELECT﹥  
  23.       ﹤/TD﹥  
  24.     ﹤/TR﹥  
  25. ﹤/TABLE﹥  
  26.    
  27. ﹤/FORM﹥  
  28. ﹤/BODY﹥  
  29. ﹤/HTML﹥  
  30. ﹤%@ page contentType=text/html; charset=GB2312 language=java errorPage=../error.jsp %﹥  
  31. ﹤%@ include file=../conn.jsp%﹥  
  32. ﹤%@ include file=../ds.jsp%﹥  
  33. ﹤%@ taglib uri=http://java.sun.com/jsp/jstl/sql divfix=sql %﹥  
  34. ﹤%request.setCharacterEncoding(gb2312); %﹥  
  35. ﹤HTML﹥﹤HEAD﹥  
  36. ﹤META. http-equiv=Content-Type content=text/html; charset=gb2312﹥  
  37.  
  38. ﹤TITLE﹥级联菜单﹤/TITLE﹥  
  39. ﹤LINK rel=stylesheet type=text/css href=style.css﹥  
  40. ﹤/HEAD﹥  
  41. ﹤!--从数据库中得到二级栏目信息--﹥  
  42. ﹤%String sql=select * from Nclass order by NclassId asc;  
  43. ResultSet rs=stmt.executeQuery(sql);  
  44. %﹥  
  45. ﹤!--将二级栏目信息保存到数组subcat中--﹥  
  46. ﹤script. type=text/javascript﹥  
  47. var onecount;  
  48. onecount=0;  
  49. subcat = new Array();  
  50.         ﹤%  
  51.         int count = 0;  
  52.         while(rs.next()){  
  53.         %﹥  
  54. subcat[﹤%=count%﹥] = new Array(﹤%=rs.getString(NclassName)%﹥,  
  55. ﹤%=rs.getString(NclassId)%﹥,﹤%=rs.getString(parentId)%﹥);  
  56.         ﹤%  
  57.         count++;  
  58.         }  
  59.         rs.close();  
  60.         %﹥  
  61. onecount=﹤%=count%﹥;  
  62. ﹤!--决定select显示的函数--﹥  
  63. function changelocation(locationid)  
  64.     {  
  65.     document.myform.NclassId.length = 0;  
  66.  
  67.     var locationidlocationid=locationid;  
  68.     var i;  
  69.     for (i=0;i ﹤ onecount; i++)  
  70.         {  
  71.             if (subcat[i][2] == locationid)  
  72.             {  
  73.                 document.myform.NclassId.options[document.myform.NclassId.length] = new  
  74. Option(subcat[i][0], subcat[i][1]);  
  75.             }         
  76.         }  
  77.          
  78.     }     
  79. ﹤/script﹥  
  80.  
  81. ﹤FORM. method=POST name=myformaction=adminsave.jsp?action=add﹥  
  82.   ﹤TABLE﹥  
  83.     
  84.     ﹤TR﹥  
  85.       ﹤TD﹥一级分类﹤/TD﹥  
  86.       ﹤TD﹥   
  87.         ﹤SELECT name=classId nChange=changelocation(document.myform.classId.options  
  88. [document.myform.classId.selectedIndex].value) size=1﹥  
  89.           ﹤OPTION selected value﹥==请选一级分类==﹤/OPTION﹥  
  90.         ﹤sql:query var=query dataSource=$﹥  
  91.           SELECT * FROM class  
  92.        ﹤/sql:query﹥  
  93. ﹤c:forEach var=row items=$﹥  
  94.  ﹤option value=$﹥$﹤/option﹥  
  95. ﹤/c:forEach﹥  
  96. ﹤/select﹥  
  97.       ﹤/TD﹥  
  98.       ﹤TD﹥选择二级分类﹤/TD﹥  
  99.       ﹤TD﹥  
  100.         ﹤SELECT name=NclassId﹥  
  101.           ﹤OPTION selected value﹥==请选二级分类==﹤/OPTION﹥  
  102.         ﹤/SELECT﹥  
  103.       ﹤/TD﹥  
  104.     ﹤/TR﹥  
  105. ﹤/TABLE﹥  
  106.    
  107. ﹤/FORM﹥  
  108. ﹤/BODY﹥  
  109. ﹤/HTML﹥  
  110.  

以上就是使用JSP JavaScript如何构建二级级联下拉菜单的方法,具体实现之后是不是很好呢?对JSP JavaScript开发设计是不是有帮助呢?

【编辑推荐】

  1. 对JSP中的内置对象简单概述
  2. JSP入门之网站环境搭建的步骤
  3. JSP导出Oracle数据表的操作浅谈
  4. 在JSP中实现页面跳转
  5. 什么是JSP以及和Servlet的比较
责任编辑:仲衡 来源: 开发学院
相关推荐

2011-04-19 17:24:09

JavaScript二级联动下拉框

2009-12-09 16:42:55

PHP二级联动菜单

2020-07-20 14:04:34

Excel下拉菜单数据

2020-07-20 12:31:33

UI下拉工菜单设计

2009-04-02 09:08:00

下拉菜单脚本导航设计CSS

2013-03-18 10:01:34

jQueryJavaScript

2009-09-11 09:17:00

C# Button

2024-01-08 08:50:19

Vue3级联菜单数据懒加载

2009-09-21 17:17:11

Hibernate二级

2009-01-08 21:33:34

2009计算机等级考试二级

2009-06-18 15:24:35

Hibernate二级

2011-08-11 09:50:56

路由器设置

2021-03-30 09:01:07

Python模拟软件Python基础

2009-09-21 14:59:31

Hibernate二级

2009-09-24 11:04:56

Hibernate二级

2013-09-08 23:30:56

EF Code Fir架构设计MVC架构设计

2014-02-24 13:49:13

HTML5CSS3下拉菜单

2021-10-10 12:50:00

微软Windows 11Windows

2009-09-21 14:39:40

Hibernate二级

2018-09-04 09:00:20

点赞
收藏

51CTO技术栈公众号