thinkphp5 三级联动

来源:互联网 发布:软件工作室网站源码 编辑:程序博客网 时间:2024/06/05 14:42

这次用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);}}

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

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

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

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

原创粉丝点击