使用tp框架写的三级联动,仅供参考哦!!!
//控制器获取省市区
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller{
//获取省
public function index(){
$region_data=S('region_data');
if(!empty($region_data)){
$region_data=S('region_data');
}else{
$region_data=M('region')->where('pid=1')->select();
S('region_data',$region_data);
}
$this->assign('region_data',$region_data);
$this->display();
}
//获取城市
function getCity(){
if(IS_POST){
$pid= intval($_POST['pid']);
if(empty($pid)){
echo json_encode(array('status'=>0,'msg'=>'稍后重试'));
exit;
}
$city_data=S('city_data'.$pid);
if(empty($city_data)){
$city_data=M('region')->where('pid='.$pid)->select();
S('city_data'.$pid,$city_data);
}
if(empty($city_data)){
echo json_encode(array('status'=>0,'msg'=>'稍后重试'));
exit;
}
echo json_encode(array('status'=>1,'data'=>$city_data));
}
}
//获取地区
function getProvince(){
$pid=intval($_POST['pid']);
if(empty($pid)){
echo json_encode(array('status'=>0,'msg'=>'稍后重试'));
exit;
}
$province_data=S('province_data'.$pid);
if(empty($province_data)){
$province_data=M('region')->where('pid='.$pid)->select();
S('province_data'.$pid,$province_data);
}
if(empty($province_data)){
echo json_encode(array('status'=>0,'msg'=>'稍后重试'));
exit;
}
echo json_encode(array('status'=>1,'data'=>$province_data));
}
}
下边是关于三级联动的js操作:
//index.html
省份: < select name = "" id = "city" >
<foreach name = "region_data" item = "vo" >
<option value = "{$vo.id}" >{$vo . name}</option >
</foreach>
</select >
<select id = "province" >
<option value = "" > 请选择城市</option >
</select >
<select id = "area" >
<option value = "" > 请选择地区</option >
</select >
<script type = "text/javascript" src = "jquery-1.7.2.min.js"></script >
<script type = "text/javascript" >
$(function () {
$('#city') . change(function () {
var
pid = $(this) . val();
$.post("{:U('Index/getCity')}",{'pid':pid},function (data){
if (data . status) {
var
html = "<option value=''>请选择城市</option>";
$.each(data . data, function (i,item){
html += "<option value=" + item . id + ">" + item . name + "</option>";
});
$('#province') . html(html);
} else {
alert(data . msg);
}
},'json');
});
$('#province') . change(function () {
var
p_id = $(this) . val();
$.post("{:U('Index/getProvince')}",{'pid':p_id},function (data){
if (data . status) {
var
html = "<option value=''>请选择城市</option>";
$.each(data . data, function (i,item){
html += "<option value=" + item . id + ">" + item . name + "</option>";
});
$('#area') . html(html);
} else {
alert(data . msg);
}
},'json');
});
});
</script >