您的位置:首页 > Web前端

前端Js中利用Ajax异步调用后台处理数据

2017-05-23 15:09 363 查看
/[b]*********************************[/b]

* JS中Ajax异步调用后台处理数据(XML返回方式)

* 并将后台查询数据拼入XML,然后返回给前端解析处理

* 前端获取查询数据,并解析取值

[b]*********************************[/b]/

//js处理部分 1、数据校验处理提示报错

function checkData(){

if ((‘:checked′).length>1)alert(“只能选择一条记录进行保障期与缴费期定义。”);return;elseif(((‘:checked’).length<1)){

alert(“”);

return;

}

var count;
checked = document.getElementsByName("checkbox");
for(var i=0;i<checked.length;i++){
var productIds = document.getElementsByName("product_id");
if(checked[i].checked){
var productId = productIds[i+1].value;
}
}
var oXML = new ActiveXObject("Microsoft.XMLDOM");
oXML.async=false; //异步处理
var url="/life/servlet/com.ebao.life.oldage.config.bank.ProductConfigServlet?saction=CHECK_BASIC_LIFE&product_id="+productId;
oXML.load(url);
if (oXML.documentElement==null) {
return false;
}
var count = oXML.documentElement.selectSingleNode("Count").text;
var errorDetail = oXML.documentElement.selectSingleNode("ErrorDetail").text;
if(count=="0"){
window.alert(errorDetail);
return false;
}else{
$("#sAction").val('DEFI_DETAIL');
form1.submit();
}


}

//Java处理部分 1、数据校验提示错误

/* 通过后台数据处理校验,并以XML的形式返回给前端处理,进行错误提示 */

public void disposeCheckBasicLife(HttpServletRequest request,HttpServletResponse response) throws GenericException {

try {

ProductConfigDAO dao = new ProductConfigDAO();

String errorDetail = “”;

int count = 0;

Long productId = Long.valueOf(Tools.toLong(event.getData(“product_id”)));

count = dao.checkBasicLifeData(productId);

if(count==0){
errorDetail = "保障期与缴费期定义”未建立关联,请先勾选该产品,再点击保存,建立关联后再操作!";
}
StringBuffer sbXML = new StringBuffer();
sbXML.append("<?xml version=\"1.0\" encoding=\"UTF-8\" ?>");
sbXML.append("<OutEntryError>");
sbXML.append("<Count>").append(count).append("</Count>");
sbXML.append("<ErrorDetail>").append(errorDetail).append("</ErrorDetail>");
sbXML.append("</OutEntryError>");
response.setContentType("text/xml;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println(sbXML.toString());
} catch (Exception ex) {
throw ExceptionFactory.parse(ex);
}
}


//2、获取后台处理数据并取值

function selRuleType(){

var ruleType = form1.rule_type.value;

document.getElementsByName(“start_date”)[0].value = “”;

if(ruleType == 0 || ruleType == “”){

document.getElementsByName(“start_date”)[0].disabled=true;

} else {

//根据选择规则确定起始时间

var url=”/life/servlet/com.ebao.life.oldage.config.assignconfig.AssignPremiumConfigServlet?saction=SET_START_DATE&ruleType=”+ruleType;

var oXML = ajaxOper(url);

var resultCode = oXML.documentElement.selectSingleNode(“resultCode”);

if(resultCode.text != “SUCCESS”) {

var resultMsg = oXML.documentElement.selectSingleNode(“resultMsg”);

alert(resultMsg.text);

return false;

}

var list = oXML.documentElement.getElementsByTagName(“policy”); //获取policy节点中的数据

if(list.length == 0){

document.getElementsByName(“start_date”)[0].disabled=false;

}else {

for(var j=0;j
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  xml ajax 前端