JQuery的Ajax请求实现局部刷新的简单实例
请求的ajax路径传递的参数(data)会到action中被一个同样名字的变量(附带set get方法)接收,返回的data是一个JQuery的数组对象,在被调用的action中涉及到的数据变量会对象,都会封装到data中最终返回给页面。
案例:如图
我要实现状态的更改,用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"; }
相关推荐
TONIYH 2020-07-22
83510998 2020-07-18
wcqwcq 2020-06-26
delmarks 2020-06-14
ppsurcao 2020-06-14
tthappyer 2020-06-07
时光如瑾雨微凉 2020-07-19
kentrl 2020-11-10
结束数据方法的参数,该如何定义?-- 集合为自定义实体类中的结合属性,有几个实体类,改变下标就行了。<input id="add" type="button" value="新增visitor&quo
ajaxyan 2020-11-09
zndy0 2020-11-03
学留痕 2020-09-20
Richardxx 2020-11-09
learningever 2020-09-19
chongxiaocheng 2020-08-16
ajaxhe 2020-08-16
lyqdanang 2020-08-16