获取联级下拉栏目

在数据库里有如下数据:其中子分类为零的为主导航, 将下面的栏目在前台显示出来,如下效果

.tpl如下:

<tr><td>栏  目:<select name="nav"><option style="padding: 0;">请选择一个栏目类别</option>{$nav}</select></td></tr>

下面演示如何使数据在前台显示出:

1 两个要用的数据库函数如下:是navModel对象的成员函数

        //查询所有主导航,没有limit
        public function getAllFrontNav(){
            $_sql = "select id,nav_name,nav_info,sort from cms_nav where pid=0 order by sort asc";
            return parent::all($_sql);
        }
        //查询所有子导航
        public function getAllChildNav(){
            $_sql = "select id,nav_name,nav_info,sort from cms_nav where pid=$this->id order by sort asc $this->limit";
            return parent::all($_sql);
        }

2 实现前台样式如下:重点在此,利用循环,再注入变量

        private function add(){
            $_nav = new NavModel();
            foreach ($_nav->getAllFrontNav() as $_object){
                $_html .= ‘<optgroup label="‘.$_object->nav_name.‘">‘;
                $_nav->id = $_object->id;//得到主导航的id用来查找它的子导航
                if (!!$_childnav = $_nav->getAllChildFrontNav()){
                    foreach ($_childnav as $_object){
                        $_html .= ‘<option>‘.$_object->nav_name.‘</option>‘;
                    }
                }
                $_html .= ‘</optgroup>‘;
            }
            $this->_tpl->assign(‘nav‘,$_html);
        }

3 简单的css样式自行修改了

时间: 2025-01-04 20:30:55

获取联级下拉栏目的相关文章

学习笔记-php简单联级下拉菜单输出-2016.4.7

在使用联级输出的时候一到一个模型里面的小问题,之前不注意,模型里不同的方法每次得到的数据交给控制器的时候,我都以数组的形式输出,但是这个数组我作为私有字段,到时今天做联级菜单输出的时候,不能正常输出,最后不得不吧这个私有字段去掉,在每个方法的作用域里面分别初始化一个数组,这样就互不干扰!(还是考虑的太少,太异想天开!) 不说了,贴代码 html部分 <select name="nav"> <option>请选择一个栏目类别</option> {$na

JS横向延时2级下拉菜单

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS横向延时2级下拉菜单</title> <style> body{ font-size: 12px; color: #333;} body, ul,h2{ margin:0;padding:0;} li { list-style:none;}

实现两级下拉框的联动

1.实现两级下拉框的联动. 功能:实现点击年级下拉框,加载对应科目的下拉框. 第一步:首先要加载年级下拉框中的数据. 01.在GradeDAL层(数据访问层)写一个方法,查询所有年级的信息. /// <summary> /// 从数据库中获取年级信息 /// </summary> /// <returns>List的集合:年级编号,年级名称</returns> public List<Grade> SelectGradeInfo() { List

简单的单级下拉菜单实现

效果预览 这里用纯CSS实现一个简单的单级下拉菜单,鼠标划过菜单标题时显示下拉菜单. 基本思路 在菜单处于光标之下时显示菜单,其余时候隐藏.这个过程首先得想到 :hover 伪类来实现,但是直接的利用伪类还不行,因为普通状态下菜单隐藏了,没办法触发 :hover ,不过下拉菜单隐藏了不是还有菜单标题么,菜单标题处于光标之下时显示菜单就能够显示出来了,但是鼠标移到菜单上的时候下拉菜单又会消失,这个时候想到给下拉菜单也加上 :hover 显示自身,但是万一脑洞大开,要做分体菜单怎么办,这个时候把它放

手机影音第十三天,xutils3、Glide的使用获取网络图片;下拉、上滑刷新;缓存网络资源

代码已经托管到码云上,感兴趣的小伙伴可以下载看看 https://git.oschina.net/joy_yuan/MobilePlayer 本次的网络资源地址使用的是时光网的api接口,地址如下: http://api.m.mtime.cn/PageSubArea/TrailerList.api 效果如下: 一.Xutils3 的使用 去github上看详解:https://github.com/wyouflf/xUtils3 xUtils3简介 xUtils 包含了orm, http(s),

Select级联菜单,用Ajax获取Json绑定下拉框(jQuery)

需求类似这样  ↓ ↓ ↓   -->    菜单A发生变化,动态取数据填充下拉菜单B. JS代码如下: <script type="text/javascript"> $(function () { $("#TeamSelect").change(function () { var tid = $("#TeamSelect option:selected").val(); $.ajax({ url: "/ajax/a

2016.8.22 Axure两级下拉框联动的实现

刚学Axure,有些很简单的东西都要弄很久,但是弄出来的总归是很开心的. 参考来自:实现省市县下拉框的三级联动 http://www.woshipm.com/rp/348795.html/comment-page-1 我的实现: 1.添加两个droplist,并且为之命名:province和city. 2.为province添加两个选项. 3.将city转换为dynamic panel. 右击city,选择选项“convert to dynamic panel”. 4.为city添加两个状态(与

dedecms 搜索功能实现及下拉栏目

如果你不会dedecms 搜索功能  请对自己说dedecms dedecms 搜索功能很简单,很简单,真的很简单!! 按步骤来说明吧 1 , 找到下载解压出来的原版dedecms 源代码  /uploade/plus/search.php search.php 文件 把他放到项目中去与上面的路径一样(一般都会有的没有了在放) 2 , 然后创建一个search.htm 文件(这里他是用来展示搜索的内容search.htm 与search.php 是对应关系不用 考虑路径问题) 3 , 最重要的一

获取多选下拉框(select标签设置multiple属性)的值

原文链接:https://blog.csdn.net/qq846294282/article/details/82427002   (侵删) <select multiple>不能直接获取value,需要借助该元素的options属性.如下: <select id="select" multiple> <option value="1">1111</option> <option value="2&qu