php redis 省市县,PHP通过ajax实现得到省市县区域三级联动的选项组

在一些项目的开发中需要对注册的商家或者用户实现省市县的三级或者更多层级的联动效果。同样也适用于多级分类的效果。下面直接上代码,请各位自行琢磨。。欢迎指正分享建议。。

HTML部分的代码如下:

请选择

<?php echo WebsiteProvince::model()->getOpt();?>

必选

必选

必选

JS部分的代码如下:

//当选择城市变化的时候,对应变化下面的片区

$('#province').change(function(){

var prov_id = $('#province').val();

$('#city').html('');

$('#district').html('');

$('#area').html('');

$.getJSON("/api/common/getOptByPid", {prov_id:prov_id}, function(data){

$('#city').html('请选择'+data);

});

});

//当选择城市变化的时候,对应变化下面的片区

$('#city').change(function(){

var city_id = $('#city').val();

$('#district').html('');

$('#area').html('');

$.getJSON("/api/common/getOptByCid", {city_id:city_id}, function(data){

$('#district').html('请选择'+data);

});

});

//当选择城市变化的时候,对应变化下面的片区

$('#district').change(function(){

var district_id = $('#district').val();

$('#area').html('');

$.getJSON("/api/common/getOptByDid", {district_id:district_id}, function(data){

$('#area').html('请选择'+data);

});

});

PHP接口部分的代码如下:

// 传入城市的ID,获取下面相应的片区Opt信息

public function actionGetOptByPid() {

$request = Yii::app()->request;

$pid = $request->getParam('prov_id');

$opt = '';

$criteria = new CDbCriteria();

$criteria->select = array('id','name','sort');

$criteria->addCondition("parent_id = '{$pid}'");

$criteria->addCondition("status = '1'");

$criteria->order = 'sort DESC';

$data = WebsiteCity::model()->findAll($criteria);//在该方法先查询所有记录

if($data){

foreach ($data as $key => $value) {

$opt .= ''.$value->name.'';

}

}

echo json_encode($opt);

}

// 传入城市的ID,获取下面相应的片区Opt信息

public function actionGetOptByCid() {

$request = Yii::app()->request;

$cid = $request->getParam('city_id');

$opt = '';

$data = WebsiteDistrict::model()->findAll("parent_id = '{$cid}'");

if($data){

foreach ($data as $key => $value) {

$opt .= ''.$value->region_name.'';

}

}

echo json_encode($opt);

}

//...............

不要抱怨你没有一个好爸爸,不要抱怨你的工作差,不要抱怨怀才不遇无人赏识。现实有太多的不如意,就算生活给你的是垃圾,你同样能把垃圾踩在脚底下登上世界之巅。这个世界只在乎你是否在到达了一定的高度,而不在乎你是踩在巨人的肩膀上上去的,还是踩在垃圾上上去的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值