2016-09-17 16 views
1

こんにちは、こんにちは、私はCodeigniterの新作です。私はすべてのプロジェクトで経験がありません。学習用のショッピングサイトを作成しています。実際のプロジェクトはありません。管理パネルを作成すると、カテゴリとサブカテゴリツリーをループを使用してツリーの形式でドロップダウンメニューでこれらのカテゴリを取得する方法です。Codeigniterのカテゴリとマルチレベルのサブカテゴリを表示する方法ドロップダウンリスト

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

私のモデルである: - :

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(); 
       $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; 

     } 

マイカテゴリー配列はこのように見ていますコードの動作:

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; 
     } 
関連する問題