如何使用2级codeigniter实现菜单

时间:2013-05-10 00:12:49

标签: php codeigniter menu

我正在尝试实现一个包含两个级别的菜单,即程序的类别; 示例: 家长1:新闻 1.1:本地 1.2:国际

enter image description here

我的问题是,每次点击后,相同类别的值都会发生变化..我希望你理解&抱歉我的英语不好:)

点击一下: enter image description here

在2sd点击同一项目后: enter image description here

这是我的代码

模型

public function get_categories($parent_id) {
    return $this->db->select('id,parent_id,category_title_fr,category_title_ar,categorie_trie')
                    ->from($this->table_categories)
                    ->where('parent_id', $parent_id)
                    ->order_by('parent_id')
                    ->get()
                    ->result();
}

public function get_categorieschild() {
    return $this->db->select('id,parent_id,category_title_fr,category_title_ar,categorie_trie')
                    ->from($this->table_categories)
                    ->where('parent_id','0')
                    ->get()
                    ->result();
}

控制器

    $data['cat_niveau1'] = $this->listeprogram->get_categorieschild();
    $this->load->view('templates/ar/template', $data);

查看

foreach ($cat_niveau0 as $cat0) {
    echo '<li><a href="'.base_url().'index.php/program/programme_chaine_ar/'.$cat0->id.
            '" class="menu-button menu-drop"><span class="menu-label">'.$cat0->category_title_ar.'</span></a>';
    echo '<div class="menu-dropdown menu-dropdown1"><ul class="menu-sub">';
    foreach ($cat_niveau1 as $cat1) {
        if ($cat0->id == $cat1->parent_id) {
            echo '<li><a href="'.base_url().'index.php/program/programme_chaine_ar/'.$cat0->id.'/'.$cat1->id.
                    '" class="menu-subbutton"><span class="menu-label">'.$cat1->category_title_ar.'</span></a></li>';
        }
    }
    ?>
    <?php
        echo '</ul></div></li>';
}

1 个答案:

答案 0 :(得分:1)

首先,我看不到你传递cat_niveau0的位置。然后,您应该在控制器中使用两个级别创建数据并将其作为多维关联数组传递,或者您可以传递cat_niveau0,然后在视图中

foreach ($cat_niveau0 as $cat0) {
# $cat1 = # get array through model based on cat0

}

注意:你的模型也有非常奇怪的名字:get_categories应该是get_categorieschild,反之亦然,也许你的混淆与哪个是:)