利用了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 相关文章推荐
轻轻松松学习JavaScript
Feb 25 Javascript
JavaScript实用技巧(一)
Aug 16 Javascript
Jquery 实现弹出层插件
Jan 28 Javascript
JavaScript中定义函数的三种方法
Mar 12 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
Oct 20 Javascript
JavaScript文档碎片操作实例分析
Dec 12 Javascript
Javascript闭包与函数柯里化浅析
Jun 22 Javascript
Bootstrap表单简单实现代码
Mar 06 Javascript
使用vue实现grid-layout功能实例代码
Jan 05 Javascript
Element InputNumber 计数器的实现示例
Aug 03 Javascript
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
vue3种table表格选项个数的控制方法
Apr 14 Vue.js
前台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
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
关于document.cookie的使用javascript
2010/10/29 Javascript
js滚动条回到顶部的代码
2011/12/06 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
js 调用父窗口的具体实现代码
2013/07/15 Javascript
JavaScript自定义数组排序方法
2015/02/12 Javascript
深入浅析同源策略和跨域访问
2015/11/26 Javascript
easyui datagrid 大数据加载效率慢,优化解决方法(推荐)
2016/11/09 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
微信小程序 商城开发(ecshop )简单实例
2017/04/07 Javascript
JavaScript之事件委托实例(附原生js和jQuery代码)
2017/07/22 jQuery
vue实现底部菜单功能
2018/07/24 Javascript
对angularJs中controller控制器scope父子集作用域的实例讲解
2018/10/08 Javascript
js 实现在2d平面上画8的方法
2018/10/10 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
Python中的XML库4Suite Server的介绍
2015/04/14 Python
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
python写日志封装类实例
2015/06/28 Python
深入讲解Java编程中类的生命周期
2016/02/05 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
Python实现拷贝多个文件到同一目录的方法
2016/09/19 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
python中sort和sorted排序的实例方法
2019/08/26 Python
numpy.linalg.eig() 计算矩阵特征向量方式
2019/11/29 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
在PyCharm中遇到pip安装 失败问题及解决方案(pip失效时的解决方案)
2020/03/10 Python
如何开发一款堪比APP的微信小程序(腾讯内部团队分享)
2016/12/22 HTML / CSS
翻新二手苹果产品的网络领导者:Mac of all Trades
2017/12/19 全球购物
介绍一下Linux内核的排队自旋锁
2014/01/04 面试题
儿科护士自我鉴定
2013/10/14 职场文书
信息专业大学生自我评价分享
2014/01/17 职场文书
使用numpy nonzero 找出非0元素
2021/05/14 Python
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis