如何在Codeigniter下拉列表中显示类别和多级子类别

时间:2016-09-17 05:24:41

标签: codeigniter

你好朋友我是Codeigniter的新手我没有经验任何项目我正在制作购物网站学习目的而不是真正的Project.When创建管理面板我能够使用循环获取类别和子类别树,但如何获取这些树形式下拉菜单中的类别。

Like this-
Electronics
    ->Phones
        ->Tablets
        ->Mobiles
    ->Computer
        ->Laptops
        ->Desktops
Furniture
    ->Tables
        ->Plastic Table
        ->Wooden Table

我的模特是: -

function getcategories($parent_id = 0) {
                $categories = array();
                $this->db->where('parentid',$parent_id);
                $query = $this->db->get('categories');
                $result = $query->result_array();
                    foreach ($result as $mainCategory) {
                    $category                           = array();
                    $category['id']                     = $mainCategory['id'];
                    $category['categoryname']           = $mainCategory['categoryname'];
                    $category['parentid']               = $mainCategory['parentid'];
                    $category['sub_categories']         = $this->getcategories($category['id']);
                    $categories[$mainCategory['id']]    = $category;
                    }
                    return $categories;

        }

My Categories数组看起来像这样: -

Array
(
    [category] => Array
        (
            [1] => Array
                (
                    [id] => 1
                    [categoryname] => Electronics
                    [parentid] => 0
                    [sub_categories] => Array
                        (
                            [2] => Array
                                (
                                    [id] => 2
                                    [categoryname] => Smartphones
                                    [parentid] => 1
                                    [sub_categories] => Array
                                        (
                                            [4] => Array
                                                (
                                                    [id] => 4
                                                    [categoryname] => Sony
                                                    [parentid] => 2
                                                    [sub_categories] => Array
                                                        (
                                                        )

                                                )

                                        )

                                )

                            [3] => Array
                                (
                                    [id] => 3
                                    [categoryname] => Televisions
                                    [parentid] => 1
                                    [sub_categories] => Array
                                        (
                                        )

                                )

                        )

                )

        )

)

我的数据库表看起来像这样: - it is my database table

1 个答案:

答案 0 :(得分:0)

此代码有效:

   function getcategories($parent_id = 0) {
            $categories = array();
            $category   = array(); 
            $subcategories = array();
            $q = $this->db->get_where('categories', array('parent_id' => $parent_id));  
            $results = $q->result(); 
            foreach ($results as $mainCat) { 
                $q2 = $this->db->get_where('categories', array('parent_id' => $mainCat->id));
                $results2 = $q2->result(); 
                foreach ($results2 as $key => $subCat) {
                    $subcategory['id']          = $subCat->id;
                    $subcategory['name']        = $subCat->name;
                    $subcategory['parentid']    = $subCat->parent_id;
                    $subcategories[$subCat->id] = $subcategory;
                }                         
                $category['id']           = $mainCat->id;
                $category['name']         = $mainCat->name;
                $category['parentid']     = $mainCat->parent_id; 
                $category['subcat']       = $subcategories;
                $categories[$mainCat->id] = $category;
                $subcategories='';                  

            } 
            return $categories;
        }