tp6三级分类结构

tp6三级分类结构

$model = New Cate();
        // 先查询出顶级分类,也就是父级id为0的
        $a = $model->where(['status' => 1, 'pid' => 0, 'type' => 4])
            ->field('id,name,image,tag')
            ->select()->toArray();
        foreach ($a as $v) {
            $v['image'] = env('app.yuming') . $v['image'];
        }
        foreach ($a as $k => $v) {
            // 定义一个空数组为二级分类的名字
            $a[$k]['child'] = [];
            // 查询二级分类。条件为父id等于等级分类的id
            $b = $model->where('pid', $v['id'])
                ->field('id,name')
                ->select()->toArray();
            foreach ($b as $k1 => $v1) {
                // 把查询出来的结果合并到定义的数组中,合并一级二级分类
                array_push($a[$k]['child'], $v1);
                // 再定义一个数组为三级分类的名字
                $a[$k]['child'][$k1]['chlid2'] = [];

                // 获取三级分类的信息
                $supply = New Supply();
                $c = $supply->where(['cate_id' => $v1['id'], 'status' => 1])
                    ->field('id,title,image,price,turnover')
                    ->select()->toArray();
                foreach ($c as $v) {
                    $v['image'] = env('app.yuming') . $v['image'];
                }
                foreach ($c as $v2) {
                    // 合并一级二级三级分类
                    array_push($a[$k]['child'][$k1]['chlid2'], $v2);
                }
            }
        }
        return $a;
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三级联动通常用于省市区选择,下面是一个基于ThinkPHP 6的简单实现: 首先,我们需要在数据库中创建三个表,分别为`province`、`city`和`district`,每个表至少需要包含`id`和`name`两个字段。 接下来,我们在控制器中编写三个方法,分别用于获取省、市和区的列表: ```php public function getProvinces() { $provinces = Db::table('province')->select(); return json($provinces); } public function getCities($provinceId) { $cities = Db::table('city')->where('province_id', $provinceId)->select(); return json($cities); } public function getDistricts($cityId) { $districts = Db::table('district')->where('city_id', $cityId)->select(); return json($districts); } ``` 然后,在前端页面中,我们可以使用jQuery来实现三级联动。首先,我们需要在HTML中添加三个下拉框: ```html <select id="province"> <option value="">请选择省份</option> </select> <select id="city"> <option value="">请选择城市</option> </select> <select id="district"> <option value="">请选择区县</option> </select> ``` 接着,我们编写以下JavaScript代码: ```javascript $(function() { // 获取省份列表 $.get('/index.php/index/getProvinces', function(data) { $.each(data, function(index, province) { $('#province').append('<option value="' + province.id + '">' + province.name + '</option>'); }); }); // 省份下拉框变化时,获取对应城市列表 $('#province').change(function() { var provinceId = $(this).val(); $('#city').empty().append('<option value="">请选择城市</option>'); $('#district').empty().append('<option value="">请选择区县</option>'); if (provinceId) { $.get('/index.php/index/getCities?provinceId=' + provinceId, function(data) { $.each(data, function(index, city) { $('#city').append('<option value="' + city.id + '">' + city.name + '</option>'); }); }); } }); // 城市下拉框变化时,获取对应区县列表 $('#city').change(function() { var cityId = $(this).val(); $('#district').empty().append('<option value="">请选择区县</option>'); if (cityId) { $.get('/index.php/index/getDistricts?cityId=' + cityId, function(data) { $.each(data, function(index, district) { $('#district').append('<option value="' + district.id + '">' + district.name + '</option>'); }); }); } }); }); ``` 这样,当用户选择省份时,我们就可以异步获取对应的城市列表,并将其填充到城市下拉框中;当用户选择城市时,我们就可以异步获取对应的区县列表,并将其填充到区县下拉框中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值