PHP地区四级联动(thinkphp)

<html>
<head></head>
<js href="/4liandong__PUBLIC__/Js/jquery-1.5.js" />
<body onload="region_default();">
<script type="text/javascript">
//设置默认,页面加载时恢复默认选项。
function region_default() {
$(
"option[value='-1']").attr('selected','selected');
}
function setregion(num,address_id) {
var next=num+1;
$.ajax({
type:
'POST',
//设置json格式,接收返回数组。
dataType:'json',
url:
'__APP__/index/get_region/',
//ajax传递当前选项的value值,也就是当前的region_id。
data:'region_id='+$('#region_'+num+'_'+address_id).val(),
success:
function(msg) {
//如果返回值不为空则执行。
if (msg!=null) {
var option_str='';
//循环书写下一个select中要添加的内容。并添加name标记。
for (var i=0; i<msg.length; i++) {
option_str
+='<option name="region_'+next+'"value="'+msg[i].region_id+'">'+msg[i].region_name+'</option>';
}
//删除下一个select中标记name为next的内容。
$("option[name='region_"+next+"']").remove();
//向下一个select中添加书写好的内容。
$('#region_'+next+'_'+address_id).append(option_str);
}
else{
//如果返回值为空,则移除所有带标记的option,恢复默认选项。
for (var i=next; i<=4; i++) {
$(
"option[name='region_"+i+"']").remove();
}
}
}

})
}
</script>
<form action="__APP__/index/get_data/" method="post">
<select name="courtry" id="region_0_0" onchange="setregion(0,0)">
<option name="selected" selected='selected' value="-1">请选择(国家)</option>
<foreach name="list" item="v">
<option value="<!--{$v.region_id}-->"><!--{$v.region_name}--></option>
</foreach>
</select>
<select name="province" id="region_1_0" onchange="setregion(1,0)">
<option name="selected" selected='selected' value="-1">请选择(省份)</option>
</select>
<select name="city" id="region_2_0" onchange="setregion(2,0)">
<option name="selected" selected='selected' value="-1">请选择(城市)</option>
</select>
<select name="district" id="region_3_0">
<option name="selected" selected='selected' value="-1">请选择(县)</option>
</select>
<input type="submit" value="提交">
</body>
</html>

以下是ThinkPHP写的获取数据的方法

    public function get_region() {
$region_id=$_POST['region_id'];
$region=D('region');
$condition['parent_id']=$region_id;
$list=$region->where($condition)->select();
echo json_encode($list);
}



原文地址:https://www.cnblogs.com/zox2011/p/2288932.html