tp5三级联动的实现

复制代码
tp5三级联动的实现
首先注意这里

 

 


 

如果说一级菜单不选中的话 后边的二级菜单是没有数据的

 

 这里就要用到三级联动

第一步:先把一级菜单的数据查询展示出来 所以 pid 默认等于 0 

代码实例:

 public function addShow(){
        //查询出一级分类pid=0的所有数据 渲染到页面上
        $data = Db::table('pyg_category')->where(['pid'=>0])->select();
        return view('show/addShow',['data'=>$data]);
    }
 

 

 

前端代码:

 

  <select class="form-control select" id="cate_one">
        <option value="">--请选择一级分类--</option>
            {foreach $data as $v}
                <option value="{$v.id}">{$v.cate_name}</option>
            {/foreach}
 </select>
 

 每一个select标签都要给一个id


接下来就要用到 js 了 代码示例:

复制代码
<script>
    //二级分类 赋给一级分类的下拉菜单一个元素改变事件
    $("#cate_one").change(function () {
        //获取一节分类的value值
        var pid = $(this).val();
        //发送ajax请求
        $.ajax({
            url:"{:url('/category')}",/*此处写的是tp框架中的路由 如果看不懂也可以直接找路径*/
            type:'post',
            data:{pid:pid},
            dataType:'json',
            success:function (res) {
                //如果ajax发送成功 并且 code值等于200
                if (res.code == 200){
                    //提前定义好下级菜单
                    var str = '<option value="">--请选择二级分类--</option>';
                    //循环后端返回来的数据并赋值
                    $.each(res.list,function (k,v) {
                        str += '<option value="'+v.id+'">'+v.cate_name+'</option>'
                    })
                    //替换页面中的二级分类标签
                    $("#cate_two").html(str);
                }
            }
        })
    })
    //三级分类 与 二级分类格式一样、思路一样 后台的方法也可以用一个
    //自己看着改一下就行了
    $("#cate_two").change(function () {
        var pid = $(this).val();
        $.ajax({
            url:"{:url('/category')}",
            type:'post',
            data:{pid:pid},
            dataType:'json',
            success:function (res) {
                //如果ajax发送成功 并且 code值等于200
                if (res.code == 200){
                    //提前定义好下级菜单
                    var str = '<option value="">--请选择三级分类--</option>';
                    //循环后端返回来的数据并赋值
                    $.each(res.list,function (k,v) {
                        str += '<option value="'+v.id+'">'+v.cate_name+'</option>'
                    })
                    //替换页面中的三级分类标签
                    $("#cate_three").html(str);
                }
            }
        })
    })
</script>
复制代码

 

posted @   王越666  阅读(75)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示