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 相关文章推荐
javascript Deferred和递归次数限制实例
Oct 21 Javascript
node.js中的fs.unlink方法使用说明
Dec 15 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
May 11 Javascript
浅谈JavaScript中的字符编码转换问题
Jul 07 Javascript
原生JS实现美图瀑布流布局赏析
Sep 07 Javascript
Javascript实现Array和String互转换的方法
Dec 21 Javascript
jQuery unbind()方法实例详解
Jan 19 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
Jun 15 Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
Dec 25 jQuery
解决vue中虚拟dom,无法实时更新的问题
Sep 15 Javascript
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 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
php学习笔记 PHP面向对象的程序设计
2011/06/13 PHP
PHP编码转换函数 自动转换字符集支持数组转换
2012/12/16 PHP
Jquery 弹出层插件实现代码
2009/10/24 Javascript
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
javascript获取元素离文档各边距离的方法
2015/02/13 Javascript
javascript封装的sqlite操作类实例
2015/07/17 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
Javascript中常见的逻辑题和解决方法
2016/09/17 Javascript
json定义及jquery操作json的方法
2016/09/29 Javascript
详解使用grunt完成requirejs的合并压缩和js文件的版本控制
2017/03/02 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
Vue中引入svg图标的两种方式
2021/01/14 Vue.js
python实现去除下载电影和电视剧文件名中的多余字符的方法
2014/09/23 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
解决python3 json数据包含中文的读写问题
2018/05/10 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
python使用folium库绘制地图点击框
2018/09/21 Python
Python将string转换到float的实例方法
2019/07/29 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
关于Python3 lambda函数的深入浅出
2019/11/27 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
2020/02/06 Python
python装饰器三种装饰模式的简单分析
2020/09/04 Python
python3爬虫中多线程的优势总结
2020/11/24 Python
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
linux面试题参考答案(5)
2016/11/05 面试题
小学生安全保证书
2014/02/01 职场文书
音乐教育感言
2014/03/05 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
含预算的公司户外活动方案
2014/08/16 职场文书
2015年公司新年寄语
2014/12/08 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
2015年控辍保学工作总结
2015/05/18 职场文书
话题作文之成长
2019/12/09 职场文书
Vue.js中v-for指令的用法介绍
2022/03/13 Vue.js