ajax 异步加载数据

function changePhoneType(obj1ID,obj2ID){

var objArea = document.getElementById(obj1ID);
var id = objArea.value;
var url = "$common.root()/page/downClient.do?method=getPhoneType&phoneBrandId="+id;
var myAjax = new Ajax.Request(url, {method: 'get',onComplete: showesay});

}

//组装机型下拉框
function showesay(dataResponse) {
if(dataResponse.status==200)
{
var objTown = document.getElementById('phoneType');
var i;
for(i = objTown.options.length ; i >= 0 ; i--){
objTown.options[i] = null;
}
objTown.options[0] = new Option("选择机型");
objTown.options[0].value = "";

var data=eval('('+dataResponse.responseText+')');

for(var i=0;i<data.length;i++){
var op= document.createElement("option");
op.text = data[i].tname;
op.value = data[i].cname;
objTown.options.add(op);
}
}

else{
alert("查询手机品牌失败!");
}

}


if (phoneTypeList != null) {
json.append("[");
int i=1;
for (Object o : phoneTypeList) {
PhoneType pType = (PhoneType) o;
if(i==1){
json.append("{\"tname\":\""+pType.getPhoneBrandCnName()+" "+pType.getPnoneTypeName()+"\",\"cname\":\""+pType.getClientName()+"\"}");
i++;
}
else{
json.append(",{\"tname\":\""+pType.getPhoneBrandCnName()+" "+pType.getPnoneTypeName()+"\",\"cname\":\""+pType.getClientName()+"\"}");
}

}
json.append("]");
}


注意两个地方:
一、在action里生成数据的要符合json格式[{"x":"y"},{"z","a"}];直接用out或者response.getWrite().print(json.toStirng());且在struts1.1的findMapping中直接返回null
二、在前端直接eval('('+dataResponse.responseText+')'),来组织js对象数据,然后拼装需要的数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值