`
zxlj2ee
  • 浏览: 35358 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

jsp3级级联菜单显示

    博客分类:
  • jsp
阅读更多
曾经一度在为级联菜单而麻烦,花了好些功夫才做出来了,与大家一起分享,使用JavaScript结合Jsp从数据库读出的三级级联菜单,程序代码如下!

<!-----------

  /*
* Created on 2005-4-7
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
* @author Rainpoem
*
*/

-->
<%@ page contentType="text/html;charset=gb2312" %>
<%@ page import="java.sql.*"%>

<jsp:useBean id="con1" scope="page" class="com.Conn"/><--引用Bean-->
<jsp:useBean id="con2" scope="page" class="com.Conn"/>
<jsp:useBean id="con3" scope="page" class="com.Conn"/>
<jsp:useBean id="con4" scope="page" class="com.Conn"/>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>-------三级菜单级联-------</title>


<!-----------

以下为三级菜单级联,是从三表中取出数据,分别dept,member,attribute(部门,人员,属性)
级联索引字段为:
            dept         id
   member       dept_id
      attribute    member_id 
但需要前两张表中有id编号字段,以做为菜单级联的数组号来索引和编组,为数值型
该程序在Sql Server与Tomcat中实现
各表结构为:
          dept    (id int 4,name char 20)
          member   (dept_id int 4,member_id int 4,member_name char 20)
          attribute   (member_id int 4,attribute_id int 4,attribute_name char 20)
(两级菜单级联则只需截去一级即可)
     
-->
<%
     ResultSet sub1 = null;  //dept
     ResultSet sub2 = null;  //member
     ResultSet sub3 = null;  //member
  ResultSet sub4 = null;  //attribute
%>

<script  language='javascript'>
//将三级列表中的人员属性清空
function removeop()
{
  var long = document.input.ssub.options.length;
  var oOption = document.createElement("OPTION");

  for(var i=0;i<=long;i++)
     document.input.ssub.options.remove(i);
  document.input.ssub.options.remove(0);
  oOption.text="请选择人员属性";
  oOption.value="0";
  document.input.ssub.add(oOption);
}
</script>

<SCRIPT LANGUAGE="JavaScript">
var sSele = new Array;   //用于储存member表信息
var sSele1 = new Array;  //用于储存attribute表信息

sSele[0] = 'Obj.add(Option("请选择部门人员","0"));';
sSele1[0] = 'Obj.add(Option("请选择人员属性","0"));';
<%

    int vid = 0;           //部门id
int subid = 0;        //人员id
int aid = 0;     //属性id
String vnum = "";      //部门名称
String subname = "";   //人员姓名
String aname = "";     //属性名称

  sub2 = con2.select("select * from dept");//将所有部门人员取出并根据部门id号存入sSele数组
while (sub2.next())
   {
  vid = sub2.getInt("id");
     vnum = sub2.getString("name");
  sub1=con1.select("select * from member where dept_id='"+vnum+"'");
%>
sSele[<%=vid%>]='Obj.add(Option("请选择人员","0"));';
<%
  while(sub1.next())
    {
      subid=sub1.getInt("member_id");
   subname=sub1.getString("member_name").trim();
%>
     sSele[<%=vid%>]=sSele[<%=vid%>]+'Obj.add(Option("<%=subname%>","<%=subid%>"));';
<%
     }
  sub1.close();
   }
sub2.close();

sub3 = con3.select("select * from member");//将所有人员属性取出并根据人员id号存入sSele1数组
while (sub3.next())
   {
  subid = sub3.getInt("id");
     subname = sub3.getString("truename");
  sub4=con4.select("select * from attribute where member_id="+subid);
%>
sSele1[<%=subid%>]='Obj.add(Option("请选择属性","0"));';
<%
  while(sub4.next())
    {
      aid=sub4.getInt("attribute_id");
   aname=sub4.getString("attribute_name").trim();
%>
     sSele1[<%=subid%>]=sSele1[<%=subid%>]+'Obj.add(Option("<%=aname%>","<%=aid%>"));';
<%
     }
  sub4.close();
   }
sub3.close();


%>
</SCRIPT>


<form name="input" method="post" action="#">
<table width="670" border="0" align="center" cellpadding="5" cellspacing="1" bgcolor="#3366FF">

    <tr bgcolor="#ffffff">
    <td  bgcolor="#C4DFFB">请选择科室:</td>
    <td bgcolor="#C4DFFB">
      <select size="1" name="dept"  ONCHANGE="removeop();Obj=this.form.sub; Obj.innerHTML=''; eval(sSele[this.value]);">
        <option  value="0">--请选择科室--</option>
                      <%
                            try{
                              ResultSet rst2 = con2.select("select id,name from dept");
                              while (rst2.next())
                                {
                               out.println("<option value = '"+rst2.getInt("id")+"'>" + rst2.getString("name") + "</option>");
                                 }
                              con2.close();
                               }catch(Exception e){out.println(e);}
                  %>
      </select>
</td>
  </tr>
<tr bgcolor="#ffffff">
    <td  bgcolor="#C4DFFB">请选择科室人员:</td>
    <td bgcolor="#C4DFFB">
      <select size="1" name="sub"  ONCHANGE="Obj=this.form.ssub; Obj.innerHTML=''; eval(sSele1[this.value]);">
   <option value="0">请选择人员</option>
      </select>
   </td>
  </tr>
  <tr bgcolor="#ffffff">
    <td  bgcolor="#C4DFFB">请选择人员属性:</td>
    <td bgcolor="#C4DFFB">
      <select size="1" name="ssub">
   <option value="0">请选择属性</option>
      </select>
   </td>
  </tr>
</table>
</form>
</body>
</html>
分享到:
评论

相关推荐

    jsp实现级联菜单 jsp实现级联菜单

    通过级联菜单,用户可以方便地根据上一级的选择来筛选下一级的选项,从而达到快速定位的目的。本文将详细介绍如何使用JSP技术实现一个简单的级联菜单功能。 #### 二、基础知识简介 1. **JSP (Java Server Pages)**...

    运用ajax+jsp+servlet实现三级级联菜单

    在这个案例中,我们探讨如何运用AJAX、JSP和Servlet技术来实现一个三级级联菜单。 **AJAX (Asynchronous JavaScript and XML)** 是一种在不刷新整个网页的情况下,与服务器交换数据并更新部分网页的技术。它通过...

    java/jsp 实现二级级联菜单

    在Java和JSP(JavaServer Pages)开发中,二级级联菜单是一种常见的用户界面元素,通常用于导航或数据选择,特别是在具有层次结构的数据中。它允许用户首先选择一个父类别,然后显示与所选父类别相关的子类别。这种...

    jsp+js的3级级联菜单制作,可以提交到数据库保存

    项目中提到的“保存”功能意味着当用户在三级级联菜单中做出选择后,这些选择会被发送到服务器,然后由JSP页面接收并处理。处理可能包括验证数据、调用数据库操作函数等。数据库保存的实现通常会依赖于某种持久化...

    JSP+AJAX+MYSQL实现二级级联菜单

    在IT领域,构建动态、交互性强的Web应用是常见的需求,而"JSP+AJAX+MYSQL实现二级级联菜单"就是一个典型的实例。这个技术组合主要用于创建能够实时更新且具有前后端交互功能的Web界面,使得用户在选择一级菜单时,...

    jQuery+ajax实现三级级联

    在这个“jQuery+ajax实现三级级联”的实例中,我们主要探讨如何利用这两种技术来创建一个能够逐级联动的下拉菜单系统,这在数据筛选和表单填写中十分常见,如地区选择、部门分类等场景。 首先,jQuery是一个轻量级...

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

    ### JSP+JavaScript 实现二级级联下拉菜单的知识点解析 #### 一、概述 在Web开发领域,实现动态的交互式用户界面是提升用户体验的重要手段之一。本文档将详细解析如何通过JSP(JavaServer Pages)与JavaScript来...

    jsp+db的js级联菜单

    3. **动态生成HTML**:在JSP页面中,用JavaScript变量接收从服务器获取的菜单数据,然后动态创建HTML元素,构建级联菜单的结构。 4. **JavaScript事件处理**:添加事件监听器,当用户点击某个菜单项时,触发请求获取...

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

    本文将深入解析如何利用JSP与JavaScript实现一个功能丰富的二级级联下拉菜单,这是一个在电商、新闻门户等网站上广泛使用的功能,用于分类展示商品或文章。 ### 一、JSP与JavaScript简介 - **JSP**:是一种基于...

    java web下开发二级级联下拉菜单(数据库实现的)

    首先,我们需要创建一个数据库表来存储级联菜单的数据。假设我们有一个名为`category`的表,它有两列:`id`(主键,整型),`name`(字符串)和`parent_id`(整型,表示父级ID)。`parent_id`为0时代表顶级菜单项,...

    struts2 级联菜单

    在Struts2中实现级联菜单是一项常见的需求,通常用于构建复杂的下拉选择框,使得用户能够逐级选择相关选项。级联菜单在数据表关联或者层级结构的展示中非常实用,例如地区选择、部门分类等。 首先,我们需要理解...

    jsp+json+mySql 实现二级级联下拉菜单

    在本文中,我们将深入探讨如何使用JSP、JSON和MySQL来实现一个二级级联下拉菜单。这个功能常用于网站的表单设计中,让用户能够从相关联的分类中选择选项,例如省份与城市的选择。 首先,让我们了解这三个技术的核心...

    SSH+级联菜单应用案例

    4. **级联菜单的概念**:级联菜单,也称为下拉菜单或子菜单,是指菜单项展开后显示一系列相关选项的交互设计。在Web应用中,用户点击一个菜单项,会触发下一级菜单的显示,这些子菜单可能包含更具体的操作或进一步的...

    java实现Ajax级联菜单

    在IT行业中,级联菜单(Cascading Menu)是一种常见的用户界面元素,它允许用户通过多级选择来筛选或导航到特定的信息。在本案例中,我们关注的是如何使用Java和Ajax技术来实现一个二级联动的菜单。Ajax,即...

    jsp出生日期三级级联下拉列表

    在本文中,我们将深入探讨如何在JSP(JavaServer Pages)中实现一个基于JavaScript的出生日期三级级联下拉列表。这种功能常用于用户注册、个人信息填写等场景,让用户能够方便地选择他们的出生年、月和日。 首先,...

    JSP+AJAX三级级联及更多级的实现

    在这个“JSP+AJAX三级级联及更多级的实现”主题中,我们将深入探讨如何通过这两种技术构建一个能够实现多级联动下拉菜单的系统,这种功能常见于地址选择、部门结构展示等场景。 首先,JSP是Java的一种服务器端脚本...

    Ajax_实现级联菜单

    本项目的目标是创建一个动态级联菜单,用户选择一级菜单后,二级菜单会根据用户的选项动态加载相应的子项。具体来说,我们需要实现以下功能: - 用户选择一级菜单时,二级菜单应该显示对应的一级菜单下的所有子项。 ...

    java2级级联程序源码

    在这个特定的上下文中,"java2级级联程序"可能是指一个Java应用程序,它实现了两级联动的效果,可能是用于创建多级下拉菜单或者动态加载的数据筛选功能。这种功能常见于网页应用中,如jsp(JavaServer Pages)项目,...

    二级的jsp的级连菜单

    级连菜单(或称为级联菜单)在Web应用中非常常见,尤其是在涉及多层次数据选择的场景下,如地区选择、分类选择等。本文将围绕“二级的JSP的级连菜单”这一主题进行深入探讨,包括其原理、实现方法以及相关的技术要点...

    一个基于JSP+Ajax实现的三级省市县级联菜单源码例子

    标签"三级级联"表明这个例子着重于实现多级联动效果,这在很多需要地域选择的场景中都非常实用,例如地址填写、物流配送等。在实际应用中,可能需要考虑的问题包括:数据的缓存策略以减少服务器压力、异常处理以确保...

Global site tag (gtag.js) - Google Analytics