您的位置:首页 > Web前端 > JQuery

使用jQuery的getJSON方法实现配置信息的状态的异步修改

2013-07-05 11:08 1006 查看
引言:在以往的程序中,我大多数都是使用的jQuery的post方法来做异步操作,但这次不同以往,需要返回的信息有好几个,不是单一的,所以最终决定使用getJSON方法来实现配置信状态的异步修改。

以下为具体实现的代码:

1、点击超链接,将配置的id与状态值传给要调用的javascript方法updatePzActive,调用Action中的方法实现配置信息状态的异步修改。

<span id="changeActive_${ipJmPz.pzId}">
<c:if
test="${ipJmPz.active==1&&ipJmPz.valid==1}">
<a href="javascript:updatePzActive('${ipJmPz.pzId}','0')">| 停用</a>
<a href="javascript:updatePzActive('${ipJmPz.pzId}','2')">| 流控停用</a>
</c:if> <c:if test="${ipJmPz.active==0&&ipJmPz.valid==1}">
<a href="javascript:updatePzActive('${ipJmPz.pzId}','1')">| 启用</a>
<a href="javascript:updatePzActive('${ipJmPz.pzId}','2')">| 流控停用</a>
</c:if> <c:if test="${ipJmPz.active==2&&ipJmPz.valid==1}">
<a href="javascript:updatePzActive('${ipJmPz.pzId}','1')">| 启用</a>
<a href="javascript:updatePzActive('${ipJmPz.pzId}','0')">| 停用</a>
</c:if>
</span>


2、javaScript方法updatePzActive:

function updatePzActive(id,active) {
$.getJSON("<%=path%>/pluginConfig/ipJmPzManage.do?action=updatePzActive",
{ipJmPzID:id,active:active,time:new Date()}, function(data){
if(data!=null&&data!="") {
if(data.result=='success') {
var acitveStr = ''; //修改当前状态
var changeActiveHtmlStr = '';//修改当前操作
var czsjStr = data.czsj;//修改当前操作时间
if(active==1) {//说明修改后的状态是启用
acitveStr = '<div align="center"><span class="STYLE1" ><font color="green">启用</font></span></div>';
changeActiveHtmlStr = '<a href="javascript:updatePzActive('+data.ipJmPzID+',0)">| 停用 </a>';
changeActiveHtmlStr+='<a href="javascript:updatePzActive('+data.ipJmPzID+',2)">| 流控停用 </a>';
}else if(active==0) {
acitveStr = '<div align="center"><span class="STYLE1" ><font color="red">停用</font></span></div>';
changeActiveHtmlStr = '<a href="javascript:updatePzActive('+data.ipJmPzID+',1)">| 启用 </a>';
changeActiveHtmlStr+='<a href="javascript:updatePzActive('+data.ipJmPzID+',2)">| 流控停用 </a>';
}else{
acitveStr = '<div align="center"><span class="STYLE1" ><font color="#0000C6">流控停用</font></span></div>';
changeActiveHtmlStr = '<a href="javascript:updatePzActive('+data.ipJmPzID+',1)">| 启用 </a>';
changeActiveHtmlStr += '<a href="javascript:updatePzActive('+data.ipJmPzID+',0)">| 停用 </a>';

}
jQuery("#active_"+data.ipJmPzID).html(acitveStr);
jQuery("#changeActive_"+data.ipJmPzID).html(changeActiveHtmlStr);
jQuery("#czsj_"+data.ipJmPzID).html(czsjStr);
alert("操作成功!");
}else if(data.result="overtime"){
alert("该配置的生效时间已过期,不能启用或流控停用!");
}else {
alert("操作失败!");
}
}

});
}

注:在传参的时候,加上当前时间是为了避免调用缓存。

3、Action中实现状态的修改

public void updatePzActive(){
String result="";
String czsjStr="";
try {
if (ipJmPzID!=null&&!"".equals(ipJmPzID)) {
IpJmPz ipJmPz =  (IpJmPz) ipJmPzService.getipJmPzByID(ipJmPzID).get(0);
//当操作时间不在有效时间范围内,只允许“停用”操作。
if ((active==1||active==2)&&ipJmPz.getEndTime()!=null&&ipJmPz.getEndTime().before(new Date())) {
result="overtime";
}else {
ipJmPzService.updatePzActive(ipJmPzID,active);
ipJmPz = this.ipJmPzService.getOneIpJmPzByID(ipJmPzID);
czsjStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(ipJmPz.getCzsj());
result="success";
}
}else {
result = "fail";
}
String rngStr = JSONObject.fromObject("{result:'"+result+"';ipJmPzID:"+ipJmPzID+";czsj:'"+czsjStr+"'}").toString();
outJsonString(rngStr);

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
result="fail";
String proType = "";
if(ipJmPzIndex.getProType()!=null) {
proType = String.valueOf(ipJmPzIndex.getProType());
}
outHtmlString("<script>alert('操作失败');window.location='ipJmPzManage!execute.do?action=queryIpJmPzInfo&menusID="+this.getMenusID()+"&position="+this.getPosition()+"&pageSize="+pageSize+"&ipJmPzIndex.proType="+proType+"&typeId="+typeId+"';</script>");
}

String rngStr = JSONObject.fromObject("{result:'"+result+"';ipJmPzID:"+ipJmPzID+";czsj:'"+czsjStr+"'}").toString();
outJsonString(rngStr);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: