- 浏览: 834816 次
文章分类
- 全部博客 (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 3851.1.1 摘要 现在,我们经常使用的 ... -
基于1.3.3版本tooltip的datagrid单元格tip实现
2014-07-23 09:00 688文章目录 [隐藏] 1实现代 ... -
jQuery easyUI动态获取表结构并显示表中的数据)
2014-07-23 08:36 7592问题描述一: 首先根据输入的sql语句获得相关的列 ... -
jQuery plugin: Autocomplete 参数及实例
2014-07-18 10:34 580此插件依赖于 jquery 1.2.6 --- jqu ... -
kindeditor4.0.6的使用方法(jsp+struts2)
2014-07-17 08:58 741最近在研究kindeditor4.0.6在struts框架下 ... -
js设置cookie
2013-12-12 14:53 482cookie 与 session 是网页开发中常用的信息存 ... -
根据内容宽度、高度自适应,垂直水平居中,内容高度超过窗体时,垂直居顶
2013-06-26 14:47 13841、CSS方法 <! ... -
jQuery 页面载入进度条 (必有一款适合你----综合搜集版)
2013-03-29 14:17 3330链接主题: 预加载图片 延迟加载图 ... -
js中两个感叹号的原理与用法分析
2013-02-18 12:53 1604在javascript中 ... -
Google Maps JavaScript API V3 根据坐标画正方型范围
2013-01-29 11:04 1472首先需要一个方法,是把传递过来的经纬度按照半径N公里扩散, ... -
Javascript工具包
2013-01-09 14:13 972是一个免费的开放的Javascript工具包,里面有很多 ... -
加入收藏设为首页代码(兼容各种浏览器)
2012-12-05 09:18 1234把页面设置为首页,加入收藏功能,支持ie,ff,chrome, ... -
js通过汉子转化汉语拼音首字母
2012-10-27 12:59 1189<script type="text/vbsc ... -
JS实现把汉字转换为拼音
2012-10-26 16:23 2782用人在知道里面提问,如何用javascript程序把汉 ... -
使用YUI Compressor压缩JS CSS文件。节省开销
2012-10-25 11:45 1659互联网使用JS CSS 等静态资源文件 压缩工具 让你的网站更 ... -
JS监控关闭浏览器操作
2012-10-15 14:50 1404需求如下: 用户关闭浏览器通知后台。 方案如下: 1 ... -
根据浏览者的IP切换成不同语言,新浪网易IP地区信息查询API接口调用方法
2012-09-30 10:26 1216工作需求,要根据浏览者的IP切换成不同语言的页面,记了 ... -
前端开发中最常见的12个HTML标签错误
2012-09-29 11:53 1079开发者在写HTML代码的时候一定要仔细,并熟练掌握 ... -
JS数组操作
2012-09-28 13:32 1135对于js来说,原生的Arr ... -
Javascript hasOwnProperty 方法 & in 关键字
2012-09-26 09:42 837/** * hasOwnPrope ...
相关推荐
使用Ajax实现级联菜单,采取XML响应方式实现,非常好用!
非常详细的一个级联菜单,很适合刚学ajax的朋友! 大家不懂的发送邮件给我,白天都在线! /** * js文件说明:实现 分公司-->支公司-->代理机构 三级下拉级联菜单 * 作者:朱亮</p> * 版本: 1.0</p> * 修改历史</p> ...
包含数据库字段设计、jsp页面代码编写、最后的运行效果
用Ajax实现的一个级联菜单,下拉菜单是从数据库中取数据的。
Ajax-级联菜单 Ajax-级联菜单
该实例为本人项目中使用的模块代码,经过专业测试人员测试,兼容所有主流浏览器,如有不解之处请联系本人
Ajax_实现级联菜单
Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单 Ajax+struts+hibernate实现级联菜单
AJAX实例的级联菜单,初学AJAX。
完整可运行的用jquery开发的ajax各种实例包括(级联菜单,谷歌式搜索提示,可编辑表格页面无刷新切换等)
运用Ajax实现3级的级联菜单。ajax是浏览器中的js程序向服务器端发送异步请求,返回的数据为json类型。
xml实现级联菜单,很简单,完全不需要Ajax,但实现了Ajax的效果
java实现ajax二级联菜单。tools.jsp 兼容创建xmlhttprequest,menu.html前台页面,menu.jsp后台页面。可以直接利用于其他方面
这是一个级联菜单,使用ajax技术,采用了dwr框架,选择省份,城市自动加载,以此类推,可以实现多种级联效果