JQuery的Ajax请求实现局部刷新的简单实例


Posted in Javascript onFebruary 11, 2014

请求的ajax路径传递的参数(data)会到action中被一个同样名字的变量(附带set get方法)接收,返回的data是一个JQuery的数组对象,在被调用的action中涉及到的数据变量会对象,都会封装到data中最终返回给页面。

案例:如图
JQuery的Ajax请求实现局部刷新的简单实例
JQuery的Ajax请求实现局部刷新的简单实例

我要实现状态的更改,用JQuery的Ajax更改完之后图标发生改变,实现页面的局部刷新

原理:局部刷新是刷新页面的一部分,在此案例中实现的只是图标的改变,把后台代码和前台现实的图标分离,并不是对数据库重新做查询,二是后台数显数据修改之后,前台直接改变图标。

1.页面 给每条记录的图标一个唯一的id值:

<td align="center">
    <s:if test="messageState == 0">
<img src="${ctx}/images/04.png" id="r${message.messageID}"/>
    </s:if>
<s:else>
        <img src="${ctx}/images/03.png" id="r${message.messageID}"/>
    </s:else>
</td>

Ajax验证:给A标签添加的id= aUnread,再添加事件
jQuery("#aUnread").click(function(){
       var strIds="";//定义一个传递数据的变量
       $("input[name='checkbox']").each(function (){
        if(this.checked){
            strIds +=this.value+",";//得到的是多个id值,拼成字符串传到action
       }
    });
     $.ajax({
              type: "post",
              dataType:'json', //接受数据格式 
              cache:false,
              data:"strIds="+strIds,
              url: "${ctx}/feedbackonline/updateMessageStateUnread.action",
              beforeSend: function(XMLHttpRequest){
              },
              success: function(data){
                  var str=data.str;//接收返回的数据
                  for(var p in str){ //遍历接受的数组对象
                    var x="#r"+str[p];//获取要改变的记录的图标id
                    $(x).attr("src","${ctx}/images/04.png");
//把对应的id值的图标src属性值变成相应图标的路径
                  }
               },
              error: function(){
              //请求出错处理
                  alert("Error!");
              }
       });
    });

2.后台action:
private String strIds;//省略set get 方法,自动获取到页面传的响应的数据
private String[] str;//省略set get 方法
@Action("/updateMessageStateUnread")
    public String updateMessageState() throws Exception{
       String[] jStr = strIds.split(",");//把字符串拆分成字符串数组
       str=jStr;//把拆分的字符串数组赋给有get set方法的数组变量str返回到页面上
       for(int i=0;i<jStr.length;i++){
           int id=Integer.parseInt(jStr[i]);
           messageUserinfo=messageUserinfoManager.queryById(id);
           messageUserinfo.setMessageState(0);
           messageUserinfoManager.update(messageUserinfo);         
       }   
       return "ajax";
    }
Javascript 相关文章推荐
jquery next nextAll nextUntil siblings的区别介绍
Oct 05 Javascript
纯javascript实现分页(两种方法)
Aug 26 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
Oct 27 Javascript
JavaScript中绑定事件的三种方式及去除绑定
Nov 05 Javascript
Vue结合SignalR实现前后端实时消息同步
Sep 19 Javascript
vue.js整合vux中的上拉加载下拉刷新实例教程
Jan 09 Javascript
jquery的 filter()方法使用教程
Mar 22 jQuery
Vue项目中使用Vux的安装过程
May 01 Javascript
在React项目中使用Eslint代码检查工具及常见问题
Oct 10 Javascript
BootStrap modal实现拖拽功能
Dec 01 Javascript
Vue项目安装插件并保存
Jan 28 Javascript
jquery图片预览插件实现方法详解
Jul 18 jQuery
javascript页面加载完执行事件代码
Feb 11 #Javascript
JS图像无缝滚动脚本非常好用
Feb 10 #Javascript
ExtJS判断IE浏览器类型的方法
Feb 10 #Javascript
利用js读取动态网站从服务器端返回的数据
Feb 10 #Javascript
解决jquery操作checkbox火狐下第二次无法勾选问题
Feb 10 #Javascript
js判断undefined类型示例代码
Feb 10 #Javascript
jQuery-ui引入后Vs2008的无智能提示问题解决方法
Feb 10 #Javascript
You might like
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
如何利用PHP实现上传图片功能详解
2020/09/24 PHP
基于Jquery的仿照flash放大图片效果代码
2011/03/16 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
JS判断键盘是否按的回车键并触发指定按钮点击操作的方法
2017/02/13 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
2017/09/23 jQuery
Angularjs 手写日历的实现代码(不用插件)
2017/10/18 Javascript
Js利用prototype自定义数组方法示例
2017/10/20 Javascript
JavaScript中立即执行函数实例详解
2017/11/04 Javascript
深入理解Vue父子组件生命周期执行顺序及钩子函数
2018/08/12 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
python共享引用(多个变量引用)示例代码
2013/12/04 Python
Python实现针对含中文字符串的截取功能示例
2017/09/22 Python
python实现文件助手中查看微信撤回消息
2019/04/29 Python
python使用if语句实现一个猜拳游戏详解
2019/08/27 Python
python脚本之一键移动自定格式文件方法实例
2019/09/02 Python
Pytorch .pth权重文件的使用解析
2020/02/14 Python
keras多显卡训练方式
2020/06/10 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
5分钟快速掌握Python定时任务框架的实现
2021/01/26 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
amazeui页面分析之登录页面的示例代码
2020/08/25 HTML / CSS
惠普美国官方商店:HP Official Store
2016/08/28 全球购物
英智兴达软件测试笔试题
2016/10/12 面试题
销售员个人求职的自我评价
2014/02/10 职场文书
协议书怎么写
2014/04/21 职场文书
亚运会口号
2014/06/20 职场文书
2014年药店工作总结
2014/11/20 职场文书
起诉离婚协议书样本
2014/11/25 职场文书
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技