2016-09-17 66 views
1

你好朋友我是Codeigniter中的新手我沒有任何項目的經驗我正在爲購物網站進行學習目的只有不是真正的Project.When創建管理面板我能夠獲取類別和子類別使用循環的樹,但是如何在樹形格式的下拉菜單中獲取這些類別。如何在Codeigniter下拉列表中顯示類別和多級子類別

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; 

     } 

我的類別陣列是這個樣子的: -

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

+0

首先,爲什麼要在選擇下拉列表中顯示所有分層數據,因爲這樣做不是好習慣。下拉菜單用於列出項目。 – Zeeshan

+0

我想在創建產品時顯示應該有選擇類別,我認爲這是至關重要的。如果您認爲這不是好的做法,那麼當我創建產品時,我該如何定義類別下的產品。 –

+0

當我創建一個像iPhone 7的產品,那麼我會給它類別電子產品 - >智能手機 –

回答

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; 
     } 
相關問題