- 浏览: 850266 次
文章分类
- 全部博客 (365)
- java (124)
- spring mvc (21)
- spring (22)
- struts2 (6)
- jquery (27)
- javascript (24)
- mybatis/ibatis (8)
- hibernate (7)
- compass (11)
- lucene (26)
- flex (0)
- actionscript (0)
- webservice (8)
- rabbitMQ/Socket (15)
- jsp/freemaker (5)
- 数据库 (27)
- 应用服务器 (21)
- Hadoop (1)
- PowerDesigner (3)
- EJB (0)
- JPA (0)
- PHP (2)
- C# (0)
- .NET (0)
- html (2)
- xml (5)
- android (7)
- flume (1)
- zookeeper (0)
- 证书加密 (2)
- maven (1)
- redis (2)
- cas (11)
最新评论
-
zuxianghuang:
通过pom上传报错 Artifact upload faile ...
nexus上传了jar包.通过maven引用当前jar,不能取得jar的依赖 -
流年末年:
百度网盘的挂了吧???
SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) -
953434367:
UfgovDBUtil 是什么类
Java发HTTP POST请求(内容为xml格式) -
smilease:
帮大忙了,非常感谢
freemaker自动生成源代码 -
syd505:
十分感谢作者无私的分享,仔细阅读后很多地方得以解惑。
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
自己动手实现的一个Ajax级联菜单,开发平台:Eclipse,数据库:MySQL。数据库设计如下图所示:
1. 前台实现:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ page import="java.sql.*,java.io.*"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Ajax级联菜单实现</title>
- <script language="JavaScript" type="text/javascript">
- <!--
- var cache = [];
- function getLevel2(){
- if(document.forms.LevelMenu.select1.selectedIndex == 0){
- //当一级菜单未被选中时,二级菜单保持初始状态
- document.forms.LevelMenu.select2.length = 1;
- return;
- }
- //如果当前二级分类没有缓存时,则从服务器获取数据
- if(!cache[document.forms.LevelMenu.select1.selectedIndex]){
- //创建跨浏览器的XMLHttpRequest对象
- var xmlhttp;
- try{
- //IE 5.0
- xmlhttp = new ActiveXObject('Msxm12.XMLHTTP');
- }catch(e){
- try{
- //IE 5.5 及更高版本
- xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
- }catch(e){
- try{
- //其他浏览器
- xmlhttp = new XMLHttpRequest();
- }catch(e){}
- }
- }
- xmlhttp.open("get","ShowTwoMenu.jsp?id="+document.forms.LevelMenu.select1.value);
- xmlhttp.onreadystatechange = function(){
- if(xmlhttp.readyState == 4){
- if(xmlhttp.status == 200){
- cache[document.forms.LevelMenu.select1.selectedIndex] = eval("("+xmlhttp.responseText+")");
- getLevel2();
- }
- }
- }
- xmlhttp.send(null);
- return;
- }
- document.forms.LevelMenu.select2.length = 1;
- var _arr = cache[document.forms.LevelMenu.select1.selectedIndex];
- for (var i=0; i<_arr.length-1; i+=2){
- with(document.forms.LevelMenu.select2){
- options[options.length] = new Option(_arr[i], _arr[i+1]);
- }
- }
- }
- //-->
- </script>
- </head>
- <body>
- <%
- //驱动器名
- //数据库用户名和密码
- String userName = "root";
- String userPasswd = "1984428";
- //需要连接的数据库名
- String dbName = "studyajax";
- //表名
- String tableName = "articleType";
- //创建连接并执行查询操作
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- Connection conn = DriverManager.getConnection(
- "jdbc:mysql://localhost:3306/" + dbName, userName,
- userPasswd);
- Statement statement = conn.createStatement();
- String sql = "SELECT * FROM " + tableName + " where level=0";
- ResultSet rs = statement.executeQuery(sql);
- %>
- <form name="LevelMenu"><select name="select1" id="select1"
- onchange="getLevel2()">
- <option value="0">请选择一级分类:</option>
- <%
- while (rs.next()) {
- %>
- <option value="<%=rs.getInt(1) %>"><%=rs.getString(2)%></option>
- <%
- }
- rs.close();
- statement.close();
- conn.close();
- %>
- </select> <select name="select2" id="select2">
- <option value="0">请选择二级分类</option>
- </select></form>
- </body>
- </html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*,java.io.*"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Ajax级联菜单实现</title> <script language="JavaScript" type="text/javascript"> <!-- var cache = []; function getLevel2(){ if(document.forms.LevelMenu.select1.selectedIndex == 0){ //当一级菜单未被选中时,二级菜单保持初始状态 document.forms.LevelMenu.select2.length = 1; return; } //如果当前二级分类没有缓存时,则从服务器获取数据 if(!cache[document.forms.LevelMenu.select1.selectedIndex]){ //创建跨浏览器的XMLHttpRequest对象 var xmlhttp; try{ //IE 5.0 xmlhttp = new ActiveXObject('Msxm12.XMLHTTP'); }catch(e){ try{ //IE 5.5 及更高版本 xmlhttp = new ActiveXObject('Microsoft.XMLHTTP'); }catch(e){ try{ //其他浏览器 xmlhttp = new XMLHttpRequest(); }catch(e){} } } xmlhttp.open("get","ShowTwoMenu.jsp?id="+document.forms.LevelMenu.select1.value); xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4){ if(xmlhttp.status == 200){ cache[document.forms.LevelMenu.select1.selectedIndex] = eval("("+xmlhttp.responseText+")"); getLevel2(); } } } xmlhttp.send(null); return; } document.forms.LevelMenu.select2.length = 1; var _arr = cache[document.forms.LevelMenu.select1.selectedIndex]; for (var i=0; i<_arr.length-1; i+=2){ with(document.forms.LevelMenu.select2){ options[options.length] = new Option(_arr[i], _arr[i+1]); } } } //--> </script> </head> <body> <% //驱动器名 //数据库用户名和密码 String userName = "root"; String userPasswd = "1984428"; //需要连接的数据库名 String dbName = "studyajax"; //表名 String tableName = "articleType"; //创建连接并执行查询操作 Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/" + dbName, userName, userPasswd); Statement statement = conn.createStatement(); String sql = "SELECT * FROM " + tableName + " where level=0"; ResultSet rs = statement.executeQuery(sql); %> <form name="LevelMenu"><select name="select1" id="select1" onchange="getLevel2()"> <option value="0">请选择一级分类:</option> <% while (rs.next()) { %> <option value="<%=rs.getInt(1) %>"><%=rs.getString(2)%></option> <% } rs.close(); statement.close(); conn.close(); %> </select> <select name="select2" id="select2"> <option value="0">请选择二级分类</option> </select></form> </body> </html>
2. 后台代码实现
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ page import="java.sql.*,java.io.*"%>
- <%
- //数据库用户名和密码
- int id = Integer.parseInt(request.getParameter("id").trim());
- //System.out.println("id:"+id);
- String userName = "root";
- String userPasswd = "1984428";
- //需要连接的数据库名
- String dbName = "studyajax";
- //表名
- String tableName = "articletype";
- //创建连接并执行查询操作
- Class.forName("com.mysql.jdbc.Driver").newInstance();
- Connection conn = DriverManager.getConnection(
- "jdbc:mysql://localhost:3306/" + dbName, userName,
- userPasswd);
- Statement statement = conn.createStatement();
- String sql = "SELECT id, name FROM " + tableName
- + " where level=1 and parentId=" + id;
- //System.out.println("sql:"+sql);
- ResultSet rs = statement.executeQuery(sql);
- //获取数据结果集
- response.setContentType("text/html; charset=UTF-8");
- response.setHeader("Cache-Control", "no-cache");
- PrintWriter pout = null;
- pout = response.getWriter();
- pout.print("[");
- while (rs.next()) {
- try {
- pout.print("'" + (rs.getString("name")) + "',");
- pout.print(rs.getString("id"));
- pout.print(",");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- pout.print("0]");
- rs.close();
- statement.close();
- conn.close();
- %>
发表评论
-
jQuery自动加载更多程序
2015-03-12 13:16 4121.1.1 摘要 现在,我们经常使用的 ... -
基于1.3.3版本tooltip的datagrid单元格tip实现
2014-07-23 09:00 713文章目录 [隐藏] 1实现代 ... -
jQuery easyUI动态获取表结构并显示表中的数据)
2014-07-23 08:36 7646问题描述一: 首先根据输入的sql语句获得相关的列 ... -
jQuery plugin: Autocomplete 参数及实例
2014-07-18 10:34 613此插件依赖于 jquery 1.2.6 --- jqu ... -
kindeditor4.0.6的使用方法(jsp+struts2)
2014-07-17 08:58 776最近在研究kindeditor4.0.6在struts框架下 ... -
js设置cookie
2013-12-12 14:53 509cookie 与 session 是网页开发中常用的信息存 ... -
根据内容宽度、高度自适应,垂直水平居中,内容高度超过窗体时,垂直居顶
2013-06-26 14:47 14231、CSS方法 <! ... -
jQuery 页面载入进度条 (必有一款适合你----综合搜集版)
2013-03-29 14:17 3417链接主题: 预加载图片 延迟加载图 ... -
js中两个感叹号的原理与用法分析
2013-02-18 12:53 1627在javascript中 ... -
Google Maps JavaScript API V3 根据坐标画正方型范围
2013-01-29 11:04 1507首先需要一个方法,是把传递过来的经纬度按照半径N公里扩散, ... -
Javascript工具包
2013-01-09 14:13 1000是一个免费的开放的Javascript工具包,里面有很多 ... -
加入收藏设为首页代码(兼容各种浏览器)
2012-12-05 09:18 1255把页面设置为首页,加入收藏功能,支持ie,ff,chrome, ... -
js通过汉子转化汉语拼音首字母
2012-10-27 12:59 1231<script type="text/vbsc ... -
JS实现把汉字转换为拼音
2012-10-26 16:23 2843用人在知道里面提问,如何用javascript程序把汉 ... -
使用YUI Compressor压缩JS CSS文件。节省开销
2012-10-25 11:45 1691互联网使用JS CSS 等静态资源文件 压缩工具 让你的网站更 ... -
JS监控关闭浏览器操作
2012-10-15 14:50 1442需求如下: 用户关闭浏览器通知后台。 方案如下: 1 ... -
根据浏览者的IP切换成不同语言,新浪网易IP地区信息查询API接口调用方法
2012-09-30 10:26 1248工作需求,要根据浏览者的IP切换成不同语言的页面,记了 ... -
前端开发中最常见的12个HTML标签错误
2012-09-29 11:53 1116开发者在写HTML代码的时候一定要仔细,并熟练掌握 ... -
JS数组操作
2012-09-28 13:32 1157对于js来说,原生的Arr ... -
Javascript hasOwnProperty 方法 & in 关键字
2012-09-26 09:42 870/** * hasOwnPrope ...
相关推荐
非常详细的一个级联菜单,很适合刚学ajax的朋友! 大家不懂的发送邮件给我,白天都在线! /** * js文件说明:实现 分公司-->支公司-->代理机构 三级下拉级联菜单 * 作者:朱亮</p> * 版本: 1.0</p> * 修改历史</p> ...
在网页设计中,级联菜单(Cascading Menu)是一种常见的交互元素,它允许用户通过层级结构来选择或浏览选项。...通过学习和分析这些代码,我们可以加深对AJAX级联菜单实现的理解,并将其应用到自己的项目中。
本文将深入探讨如何使用Ajax来实现级联菜单,并结合数据库获取数据。 首先,我们需要理解Ajax的工作原理。Ajax的核心是XMLHttpRequest对象,它允许JavaScript在不重新加载整个页面的情况下与服务器进行异步通信。...
在这个“jQuery+ajax实现三级级联”的实例中,我们主要探讨如何利用这两种技术来创建一个能够逐级联动的下拉菜单系统,这在数据筛选和表单填写中十分常见,如地区选择、部门分类等场景。 首先,jQuery是一个轻量级...
<title>Ajax级联菜单实现 <!-- var cache = []; function getLevel2() { if (document.forms.LevelMenu.select1.selectedIndex == 0) { // 当一级菜单未被选中时,二级菜单保持初始状态 document.forms....
在实现Ajax级联菜单时,通常涉及以下几个关键知识点: 1. **JavaScript/jQuery**:JavaScript是实现Ajax功能的主要语言,jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理和Ajax交互等任务。使用jQuery...
动态级联菜单的实现可以通过多种方式,例如使用javascript、JQuery、Ajax等技术。其中,使用javascript和服务器端脚本结合的方式是最为常见的。 在上面的代码中,我们可以看到使用了VBScript作为服务器端脚本语言,...
在实现AJAX级联菜单时,主要步骤如下: 1. 创建HTML结构,包括两个或多个级联的下拉菜单。 2. 使用JavaScript(如jQuery或其他库)监听第一个菜单的选择事件。 3. 当选择改变时,发送AJAX请求到服务器,传递选定的主...
Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单
在IT行业中,级联菜单(Cascading Menu)是一种常见的用户界面元素,它允许用户通过多级选择来筛选或导航到特定的信息。在本案例中,我们关注的是如何使用Java和Ajax技术来实现一个二级联动的菜单。Ajax,即...
在本文中,我们将深入探讨如何使用jQuery库进行AJAX(异步JavaScript和XML)开发,通过实际案例来学习包括级联菜单、谷歌式搜索提示和可编辑表格在内的常见功能。这些功能都允许用户在不刷新整个页面的情况下与网页...
在这个案例中,我们探讨如何运用AJAX、JSP和Servlet技术来实现一个三级级联菜单。 **AJAX (Asynchronous JavaScript and XML)** 是一种在不刷新整个网页的情况下,与服务器交换数据并更新部分网页的技术。它通过...
在这个特定的场景中,我们利用Ajax技术和Direct Web Remoting(DWR)框架来创建一个动态的省份城市级联菜单。这个功能能够提升用户体验,因为它减少了用户手动刷新页面的需求,提供了流畅的交互。 首先,我们需要...