thinkphp5 三级联动

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ylwsn21/article/details/76214843

这次用thinkphp5做这个三级联动,遇到了个大坑啊,一直解决不了,后来还是被我的’yin威‘所折服!!!!

直接放代码吧


这是html的:

        <div class="row cl">
            <label class="form-label col-xs-4 col-sm-3">地区:</label>
            <div class="formControls col-xs-8 col-sm-9">
                 <!-- 省/自治区 -->                 
                <select name="pro" id="pro">
                    <option>--请选择省份--</option>
                    {volist name="pro" id="vo"}
                    <option value="{$vo.region_id}">{$vo.region_name}</option>
                    {/volist}
                </select>                
                <!-- 市/州 -->
                <select name="city" id="city">
                    <option>--请选择省份--</option>
                    <option value=""></option>                                
                </select>
                <!-- 区/县 -->
                <select name="county" id="county" >
                    <option>--请选择省份--</option>
                    <option value=""></option>
                </select>
            </div>
        </div>
这是ajax的:

<script type="text/javascript">
$('#pro').change(function(){
	$prov=$('#pro').val();
	$.ajax({
		type:"post",
		url:"{:url('hospital/getCity')}",
		data:'pro='+$prov,
		dataType:"json",
		success:function(data){
	        var html ='<option value="">--请选择市/州--</option>';
	        for(var i in data){
	            html += '<option value="'+data[i].region_id+'">'+data[i].region_name+'</option>';
	        }
	        $('#city').html(html);
		}
	});

});

$('#city').change(function(){
	$city=$('#city').val();
	$.ajax({
		type:"post",
		url:"{:url('hospital/getCounty')}",
		data:'city='+$city,
		dataType:"json",
		success:function(data){
	        var html ='<option value="">--请选择区/县--</option>';
	        for(var i in data){
	            html += '<option value="'+data[i].region_id+'">'+data[i].region_name+'</option>';
	        }
	        $('#county').html(html);
		}
	});
});

</script>
这是方法:
省份的数据首先要先遍历出来:

	public function h_add(){

			$area['area_deep']=1;
			$pro=Db::name('region')->where($area)->select();
			$this->assign('pro',$pro);			
			return $this->fetch();				
	}

然后是城市,区县:

	public function getCity(){
		
		if(request()->isPost()){			
			$pid=input('pro');

			$a['parent_id']=$pid;
			$city=Db::name('region')->where($a)->select();

			return json($city);
		}
	}

	public function getCounty(){
		
		if(request()->isPost()){
			
			$pid=input('city');
			$a['parent_id']=$pid;
			$county=Db::name('region')->where($a)->select();

			return json($county);
		}
	}

这就是三级联动的全部了,说说我遇到的坑。

最开始做出来,城市和区县一直显示不了数据,这个坑让我弄了两天,心烦的要命。

今天查了日志,说是权限问题,然后开权限去了,再然后。。。就是你们现在看到的代码了

如果各位也有遇到我这种情况,也可能是权限问题!

猜你喜欢

转载自blog.csdn.net/ylwsn21/article/details/76214843