利用了jquery的ajax实现二级联互动菜单


Posted in Javascript onDecember 02, 2013

菜单资源保存在数据库中。利用了jquery的ajax实现。用到的包有:json-lib-2.2.3-jdk15.jar ezmorph-1.0.6.jar json.js jquery.js

jsp页面的代码:

<%@ page contentType="text/html; charset=gbk"%> 
<%@ taglib prefix="s" uri="/struts-tags"%> 
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript" src="js/json.js"></script> 
<% String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/"; 
out.println(basePath); 
%> <script type="text/javascript"> 
jQuery(function($){ 
//alert("ok"); 
}); 
function onchangeShow(oneId){ 
$.ajax({ 
url : "<%=basePath%>cateJson.whbs", 
data : {parentId : oneId}, // 参数 
type : "post", 
cache : false, 
dataType : "json", //返回json数据 
error: function(){ 
alert('error'); 
}, 
success:onchangecallback 
}); 
} 
function onchangecallback(data){ 
document.all['twoId'].options.length = 0; //清空原有的option 
var str=""; 
for(var i=0;i<data.length;i++){ 
str+="<option value='"+data[i].recordId+"'>"+data[i].title+"</option>" 
} 
$("#twoId").html(str); 
} 
</script> 
<html> 
<body> 
<div align="center"> 
请选择部门类型 
<s:select list="rfones" listKey="recordId" listValue="title" name="oneId" theme="simple" id="oneId" value="oneID" onchange="onchangeShow(this.value)"></s:select> 
请选择文件类型 
<s:select list="rftwos" listKey="recordId" listValue="title" name="twoId" theme="simple" id="twoId" value="twoID"></s:select> 
</div> 
</body> 
</html>

struts中action的代码
/** 
* des:取得二级联动菜单 
* autho:exceljava 
* date:Nov 20, 2009 
* @return 
* @throws IOException 
*/ 
public String getJsonCategory() throws IOException{ 
rfjsons=archiveService.getCategoryByParentID(parentId);//这里从数据库取得数据 
net.sf.json.JSONArray jsonObj=net.sf.json.JSONArray.fromObject(rfjsons);//组装成json数据 
sendMessage(jsonObj.toString());//向视图push json数据 
return null; 
} 
/** 
* des:封装发送json格式的数据回js 
* autho:exceljava 
* date:Nov 20, 2009 
* @param content 
* @throws IOException 
*/ 
public void sendMessage(String content) throws IOException{ 
HttpServletResponse response = ServletActionContext.getResponse(); 
response.setCharacterEncoding("UTF-8"); 
response.getWriter().write(content); }
Javascript 相关文章推荐
利用Ext Js生成动态树实例代码
Sep 08 Javascript
理清apply(),call()的区别和关系
Aug 14 Javascript
javascript全局变量封装模块实现代码
Nov 28 Javascript
JavaScript和CSS交互的方法汇总
Dec 02 Javascript
javascript三元运算符用法实例
Apr 16 Javascript
js显示当前日期时间和星期几
Oct 22 Javascript
javascript针对cookie的基本操作实例详解
Nov 30 Javascript
jQuery实现用户输入自动完成功能
Feb 13 Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
Feb 27 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
Oct 26 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
详解vue高级特性
Jun 09 Javascript
前台js调用后台方法示例
Dec 02 #Javascript
用javascript为页面添加天气显示实现思路及代码
Dec 02 #Javascript
给ListBox添加双击事件示例代码
Dec 02 #Javascript
js抽奖实现随机抽奖代码效果
Dec 02 #Javascript
javascript模拟地球旋转效果代码实例
Dec 02 #Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 #Javascript
扩展JS Date对象时间格式化功能的小例子
Dec 02 #Javascript
You might like
CentOS 安装 PHP5.5+Redis+XDebug+Nginx+MySQL全纪录
2015/03/25 PHP
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
JavaScript之HTMLCollection接口代码
2011/04/27 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
jQuery探测位置的提示弹窗(toolTip box)详细解析
2013/11/14 Javascript
jQuery插件bxSlider实现响应式焦点图
2015/04/12 Javascript
图片旋转、鼠标滚轮缩放、镜像、切换图片js代码
2020/12/13 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
Vue-Router模式和钩子的用法
2018/02/28 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
vuex存储token示例
2019/11/11 Javascript
jquery实现点击弹出对话框
2020/02/08 jQuery
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
详解设计模式中的工厂方法模式在Python程序中的运用
2016/03/02 Python
Python中的变量和作用域详解
2016/07/13 Python
python如何为被装饰的函数保留元数据
2018/03/21 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
在windows下使用python进行串口通讯的方法
2019/07/02 Python
解决python明明pip安装成功却找不到包的问题
2019/08/28 Python
Python字典实现伪切片功能
2020/10/28 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
香港化妆品经销商:我的公主
2016/08/05 全球购物
中国文明网签名寄语
2014/01/18 职场文书
大二法学专业职业生涯规划范文
2014/02/12 职场文书
利群广告词
2014/03/20 职场文书
电子商务专业自荐信
2014/06/02 职场文书
物理学专业求职信
2014/07/04 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
我的中国梦主题班会
2015/08/14 职场文书
高中数学课堂教学反思
2016/02/18 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
聊聊redis-dump工具安装问题
2022/01/18 Redis
进阶篇之linux环境下安装MySQL数据库
2022/04/09 MySQL