获取联级下拉栏目

Posted 党兴明

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取联级下拉栏目相关的知识,希望对你有一定的参考价值。

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

.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样式自行修改了

 

以上是关于获取联级下拉栏目的主要内容,如果未能解决你的问题,请参考以下文章

当easydropdown.js 遇到3联级

网站栏目怎么出现下拉菜单,就是鼠标放上去怎么显示二级栏目?

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

给导航栏目添加下拉菜单

HTML二级导航出现下拉列表后怎么让一级栏目也有鼠标悬停

dedeCMS如何修改一个栏目列表页为单页性质