视图
<?php ?> <center> <table class="table"> <tr> <td> 国家 <select name="region" > <option value="0">=请选择=</option> <?php foreach($region_list as $key=>$val){?> <option value="<?=$val['region_id']?>"> <?=$val['region_name']?> </option> <?php }?> </select> </td> </tr> </table> </center> <?php $js = <<<END //定义加载函数 //把input对象委托给document对象 $(document).on("change",":input[name='region']",function(){//给动态的内容父级对象绑定change事件 //给select一个内容改变事件 // $(":input[name='region']").change(function(){ //获取region_id var region_id=$(this).val(); //当前对向,追加时用 // alert(region_id); //清除一级后所有的无数据的重复追加 $(this).nextAll().remove(); //将下拉框里的请选择的value值设为0,防止点击请选择的时候继续追加 if(region_id==0){ return false; } //ajax请求 //请求地址 var url="?r=djld/get"; $.getJSON(url,{'region_id':region_id},function(msg){ if(msg.length>0){//避免二级后面继续追加 var str='<select name="region">\ <option value="0" >...请选择...</option>'; $.each( msg, function(k,v){ str+="<option value="+ v.region_id+" >"+ v.region_name+"</option>"; }); str+="</select>"; } $(this).after(str); }.bind(this)) }) END; $this->registerJs($js); //C层<?php namespace backend\controllers; use Yii; use yii\web\Controller; /** * 多级联动控制器 */ class DjldController extends Controller { public function actionIndex(){ //获取父级数据 $region_list=yii::$app->db->createCommand("select * from region where parent_id='0'")->queryAll(); //print_r($region_list); return $this->render('index',['region_list'=>$region_list]); } //获取json数据 public function actionGet(){ $region_id=yii::$app->request->get('region_id'); $region_list=yii::$app->db->createCommand("select * from region where parent_id=:region_id", [':region_id' => $region_id])->queryAll(); //print_r($region_list); exit(json_encode($region_list)); } } ?>