REATE TABLE `tbl_common_district` (
`id` int(11) NOT NULL COMMENT '地区ID',
`name` varchar(255) NOT NULL COMMENT '地区名称',
`level` tinyint(4) NOT NULL DEFAULT '0' COMMENT '地区等级:1-省级 2-市级 3-县级 4-乡镇',
`upid` int(11) NOT NULL DEFAULT '0' COMMENT '上级地区ID',
`display_order` smallint(6) NOT NULL DEFAULT '0' COMMENT '显示顺序',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='保存省市县乡镇信息,由系统初始化。';
[b]后台DAO[/b]
/**
* 获得所有省级列表
* @return
*/
public List<DistrictVO> queryProvinceList(){
String sql = "select id,name,display_order from tbl_common_district where level = 1";
return dbHelper.executeQuery(new ResultCallback<DistrictVO>() {
@Override
public DistrictVO parseToObject(ResultSet rs) throws SQLException {
DistrictVO vo = new DistrictVO();
vo.setId(rs.getInt("id"));
vo.setName(rs.getString("name"));
vo.setDisplayOrder(rs.getShort("display_order"));
return vo;
}
}, sql);
}
/**
* 根据省份id获得地市信息
* @param pid
* @return
*/
public List<DistrictVO> queryCityListByPid(int pid){
String sql = "select id,name,display_order,upid from tbl_common_district where upid = ?";
return dbHelper.executeQuery(new ResultCallback<DistrictVO>() {
@Override
public DistrictVO parseToObject(ResultSet rs) throws SQLException {
DistrictVO vo = new DistrictVO();
vo.setId(rs.getInt("id"));
vo.setName(rs.getString("name"));
vo.setDisplayOrder(rs.getShort("display_order"));
vo.setUpid(rs.getInt("upid"));
return vo;
}
}, sql, pid);
}
[b]后台Action[/b]
public String getCity(){
cityList = regionService.queryCityListByPid(provinceId);
return SUCCESS;
}
[b]Struts配置[/b]
<!-- 获得地市区域 -->
<action name="region_*" class="com.ajax.action.RegionAction" method="{1}">
<result type="json">
<param name="contentType">text/json</param>
<param name="root">cityList</param>
<param name="ignoreHierarchy">false</param>
</result>
</action>
[b]前台页面[/b]
<script>
//创建地市
function areaInput(data){
var provinces = $("#province").text();
var html = '<td id="pro_'+data.id+'"><select onchange="showCity(this)"><option value="">--省份--</option>';
if(provinces != ""){
var arr = JSON.parse(provinces);
for(var i=0;i<arr.length;i++){
html += '<option value="'+arr[i].id+'">'+arr[i].name+'</option>';
}
}
html += '</select>'+
' <select>'+
'<option value="">--城市--</option>'+
'</select>'+
'</td>';
return html;
}
//省市联动
function showCity(obj){
$(obj).next().html('<option value="">--城市--</option>');
var pid = $(obj).val();
if(pid != ""){
window.dbz.showProgressDialog('');
$.ajax({
type: "post",
url: "region_getCity.action",
data: {"provinceId":pid},
dataType: "json",
success: function(data){
var html = '';
for(var i=0;i<data.length;i++){
html += '<option value="'+data[i].name+'">'+data[i].name+'</option>';
}
$(obj).next().append(html);
},
error: function (msg) {
}
});
}
}
</script>