简介
- 使用fastjson.jar来转换json对象的字符串
- html中节点不写事件,全部由js处理
- 思路:html两个select,分别为province和city
- 当页面加载完,完成province的内容加载
- 当province的选项改变(事件),city跟着改变(函数).
html代码
<select id="province" >
</select>
<select id="city" >
</select>
action的代码
public void print(String str) throws Exception {
ServletActionContext.getResponse().setContentType("text/json;charset=utf-8");
ServletActionContext.getResponse().getWriter().print(str);
}
public void getProvinceList() throws Exception {
List<Province> provinces = Province.getAllProvince();
this.print(JSON.toJSONString(provinces));
}
private Long pid;
public void setPid(Long pid) {
this.pid = pid;
}
public void getCityList() throws Exception {
List<City> citys = City.getCityByProvinceId(pid);
this.print(JSON.toJSONString(citys));
}
js的代码
$(function(){
$.get(
"MyAjax/ajax_getProvinceList",
function(data){
var str="<option>请选择</option>"
for(var i in data){
str+="<option id="+data[i].id+">"+data[i].name+"</option>"
}
$("#province").html(str);
},
'json'
)
})
$(function(){
var provinceChange=function(){
$.get(
"MyAjax/ajax_getCityList",
{pid:$("#province option:selected").attr('id')},
function(data){
var str="<option>请选择</option>"
for(var i in data){
str+="<option id="+data[i].id+">"+data[i].name+"</option>"
}
$("#city").html(str);
},
'json'
)
}
$("#province").change(provinceChange);
})