我的编程空间,编程开发者的网络收藏夹
学习永远不晚

TP5.1+layui怎么实现栏目数的调用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

TP5.1+layui怎么实现栏目数的调用

这篇文章将为大家详细讲解有关TP5.1+layui怎么实现栏目数的调用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

layui是什么

layui是一款采用自身模块规范编写的前端UI框架,它遵循原生HTML/CSS/JS的书写与组织形式,门槛极低,适合新手,并且它还提供了丰富的内置模块,他们皆可通过模块化的方式按需加载,从核心代码到API的每一处细节都经过精心雕琢,非常适合界面的快速开发,能够作为PC网页端后台系统与前台界面的速成开发方案。

整合Layui+TP5.1时,有时候需要调用栏目树,这就需要进行数据的动态化调用,之前试过很多种方法,都没有生效,后面查看了JS数据调用的方法,结合layui进行多次尝试,终于找出了能够实现这一功能的方法,希望对大家有用。

以下的例子是一个调用城市的实例,数据库字段包括:id,order(排序),pid(上级城市ID)、name(城市名称),这里包含了省级、市级、县/区级三级城市。

第一步:根据Layui给出的方法,首先写出HTML页面,如下所示:

其中___ADMIN__是你自己配置的样式路径,修改成自己的路径即可。另外由于这里调用数据采用的是js数据调用,所以需要加载jquery库,我这里用的是jquery-3.2.1,大家可以根据自己的实际需求加载对应版本的jquery库,这里不多说,直接上代码:

【HTML】

<!DOCTYPE html><html><head>   <meta charset="UTF-8">   <title>Title</title>   <link rel="stylesheet" href="__ADMIN__/js/jquery-3.2.1.js">   <link rel="stylesheet" href="__ADMIN__/layui/css/layui.css">   <script type="text/javascript" class="lazy" data-src="__ADMIN__/layui/layui.js"></script></head><body><!--test12对应的是layuitree.render中的elem值,这两个值必须一致--><div id="test12"></div><script type="text/javascript">layui.use(['form','layer','element','tree', 'util'],function(){       $ = layui.jquery;        var form = layui.form        ,layer = layui.layer;        var tree = layui.tree        ,util = layui.util;        var element = layui.element;        form.on('checkbox(checkeds)', function(data){           if(data.elem.checked){               $('.checkone').prop('checked',true);        }else{               $('.checkone').prop('checked',false);        }           form.render('checkbox');        });   //调用数据    $(document).ready(function(){           $.get('{:url("getCategoryList")}').done(function (data) {               var arr =$.parseJSON(data);        //alert(arr);        tree.render({                   elem: '#test12'        ,data: arr                   ,showCheckbox: false  //是否显示复选框        ,id: 'demoId1'        ,isJump: false //是否允许点击节点时弹出新窗口跳转        ,click: function(obj){                       //var data = obj.data;  //获取当前点击的节点数据        var dump_url = obj.data.href;        window.location.href = dump_url;        //layer.msg('状态:'+ obj.state + '<br>节点数据:' +                                 JSON.stringify(data));        }               });        })       });});</script></body></html>

第二步:书写后台PHP代码,这里我是根据TP5.1 的规则书写的代码

【PHP代码】

//获取栏目信息public function getCategoryList(){   $id = Request::param('id');   $parentId = $this->getAllParentId($id);//获取父级ID信息   $list = AreaModel::where('pid',100000)       ->where('status',0)       ->order('order asc')       ->select();   $cate = array();   foreach ($list as $key=>$v){       $cate[$key]['title'] = $v['name'];       if(in_array($v['id'],$parentId)){           $cate[$key]['checked'] = 'true';           $cate[$key]['spread'] = 'true';       }       $cate[$key]['field'] = 'name'.$v['id'];       $cate[$key]['id'] = $v['id'];       $cate[$key]['href'] = "/yejuzhi/article/index?cid=".$v['id'];       $child = AreaModel::where('pid',$v['id'])           ->where('status',0)           ->order('order asc')           ->select();       if($child){           foreach ($child as $key1=>$c){                              $cate[$key]['children'][$key1]['title'] = $c['name'];               $cate[$key]['children'][$key1]['checked'] = 'true';               $cate[$key]['children'][$key1]['spread'] = 'true';               $cate[$key]['children'][$key1]['field'] = 'name'.$c['id'];               $cate[$key]['children'][$key1]['id'] = $c['id'];               $cate[$key]['children'][$key1]['href'] = '';               $child1 = AreaModel::where('pid',$c['id'])                   ->where('status',0)                   ->order('order asc')                   ->select();               foreach ($child1 as $key2=>$value){                   $cate[$key]['children'][$key1]['children'][$key2]['title'] = $value['name'];                   $cate[$key]['children'][$key1]['children'][$key2]['checked'] = 'true';                   $cate[$key]['children'][$key1]['children'][$key2]['spread'] = 'true';                   $cate[$key]['children'][$key1]['children'][$key2]['field'] = 'name'.$value['id'];                   $cate[$key]['children'][$key1]['children'][$key2]['id'] = $value['id'];                   $cate[$key]['children'][$key1]['children'][$key2]['href'] = '';               }           }       }       //$cate[$key]['children'][] = array();   }   //dump($cate);   return json_encode($cate);}

在上面用到了一个方法:getAllParentId,这个方法是专门用来获取所有父级ID的方法,下面是代码信息:

//获取父级栏目public function getAllParentId($id = 43){   static $parentId;   $cates = AreaModel::where('id',$id)->find();   if($cates['pid']==0){       $parentId[] = $cates['id'];   }   $list = AreaModel::where('status',0)       ->order('order asc')       ->select();   foreach ($list as $k => $v) {       if ($cates['pid'] == $v['id']) {           $parentId[] = $v['id'];           $this->getAllParentId($v['id']);       }   }   return $parentId;}

关于“TP5.1+layui怎么实现栏目数的调用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

TP5.1+layui怎么实现栏目数的调用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

TP5.1+layui怎么实现栏目数的调用

这篇文章将为大家详细讲解有关TP5.1+layui怎么实现栏目数的调用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。layui是什么layui是一款采用自身模块规范编写的前端UI框架,它遵循原生HTML/
2023-06-14

帝国CMS实现循环调用子栏目的方法

帝国cms自身的封面页的循环非常单调!一般只能加个头条、推荐之类的信息。现在分享一个支持内嵌标签的代码,可以做到不用写复杂的sql语法,就能实现在灵动标签中嵌套调用头www.cppcns.com条、图片等等自己想要的效果。代码如下所示: 复
2022-06-12

实现dedecms友情链接分栏目调用的方法(图)

dedecms如何实现不同栏目页调用不同的友情链接。网上查了大半天,都是讲些首页和栏目页的分别调用。这里和大家分享下,小伎俩,为什么实现这样的方式,原因就不必多说了。  其实运用object和javascript调用外部文件,也能实现HCT
2022-06-12

dede调用指定栏目下相关文章的实现方法

首先明确要达到两个要求: 1、要调用指定栏目 2、调用的文章要包含指定关键字 相关文档调用 {dede:likeart titlelen=’24′ row=’10′}
  • phpcms V9修改lists标签(实现调用文章所属栏目及点击数)

    实现效果步骤如下: ①打开\phpcms\modules\content\classes\conJlHaXIOMtent_tag.class.php文件;②搜索“列表页标签”,www.cppcns.com即lists
    2022-06-12

    织梦标签channel实现列表页调用当前栏目的子类

    复制代码代码如下: {dede:channel type='son' row='10' currenthttp://www.cppcns.comstyle="
  • dedecms实现调用所有顶级栏目下最新文章的方法

    本文实例讲述了dedecms实现调用所有顶级栏目下最新文章的方法。分享给大家供大家参考。具体方法分析如下: 做dedecms的模板,我们会遇到各种http://www.cppcns.com各样的调用问题,这里就来分析一下dedecms列表页
    2022-06-12

    vue的v-if里怎么实现调用函数

    今天小编给大家分享一下vue的v-if里怎么实现调用函数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。vue v-if调用函
    2023-07-02

    Python中怎么调用遍历目录树的函数

    本篇文章为大家展示了Python中怎么调用遍历目录树的函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python遍历目录树下面的函数调用os.path.walk(root, myfunc, ar
    2023-06-17

    Vue中的同步调用和异步调用怎么实现

    这篇“Vue中的同步调用和异步调用怎么实现”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue中的同步调用和异步调用怎么实现
    2023-06-28

    Java递归调用怎么实现数字的逆序输出

    这篇“Java递归调用怎么实现数字的逆序输出”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java递归调用怎么实现数字的逆序
    2023-07-06

    Python模块怎么实现简单的调用

    这篇文章给大家分享的是有关Python模块怎么实现简单的调用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通
    2023-06-14

    python怎么用构造函数实现子类调用父类

    在Python中,可以使用构造函数实现子类调用父类的方法。以下是一个示例:class ParentClass:def __init__(self, x):self.x = xdef print_x(self):print('X:
    python怎么用构造函数实现子类调用父类
    2024-02-29

    怎么用C语言实现猜数字小项目

    这篇文章主要介绍“怎么用C语言实现猜数字小项目”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用C语言实现猜数字小项目”文章能帮助大家解决问题。1.猜数字小项目分析:我们利用c语言制造出随机数来猜
    2023-06-26

    C#怎么实现调用浏览器的功能

    本篇内容主要讲解“C#怎么实现调用浏览器的功能”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#怎么实现调用浏览器的功能”吧!C#调用浏览器之调用IE:System.Diagnostics.Pr
    2023-06-17

    编程热搜

    • Python 学习之路 - Python
      一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
      Python 学习之路 - Python
    • chatgpt的中文全称是什么
      chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
      chatgpt的中文全称是什么
    • C/C++中extern函数使用详解
    • C/C++可变参数的使用
      可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
      C/C++可变参数的使用
    • css样式文件该放在哪里
    • php中数组下标必须是连续的吗
    • Python 3 教程
      Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
      Python 3 教程
    • Python pip包管理
      一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
      Python pip包管理
    • ubuntu如何重新编译内核
    • 改善Java代码之慎用java动态编译

    目录