简体   繁体   中英

how to set tree view in dynamic menu in codeigniter

Hello guyyz i need help in design,i don't have ideas about design, i have created dynamic menu in codeigniter i want to set that menu in treeview. First click on parent menu after open child menus, so how to implement it help me

Here is My View Code:

<?php
    foreach ($test as $val) {
      $array = explode(",", $val->category_id);
    }
    foreach ($get_cat as $key => $value) {
       if (in_array($value->category_id, $array)) {
         echo $value->category_name . '&nbsp;&nbsp;';  //Here My Menu Print
        }
    }
?>

You need to fetch all category with parent_id=0 then fetch subCategory. Try something like given below.

public function get_categories(){

        $this->db->select('*');
        $this->db->from('categories');
        $this->db->where('parent_id', 0);
        //Add here role condition
        $parent = $this->db->get();

        $categories = $parent->result();
        $i=0;
        foreach($categories as $p_cat){

            $categories[$i]->sub = $this->sub_categories($p_cat->cat_id);
            $i++;
        }
        return $categories;
    }

Your subcategory function.

public function sub_categories($id){

        $this->db->select('*');
        $this->db->from('categories');
        $this->db->where('parent_id', $id);
         //add here role condition
        $child = $this->db->get();
        $categories = $child->result();
        $i=0;
        foreach($categories as $p_cat){

            $categories[$i]->sub = $this->sub_categories($p_cat->cat_id);
            $i++;
        }
        return $categories;       
    }

And your controller.

public function categories(){

        $this->load->model('model_categories');
    $data = $this->model_categories->get_categories();

    print_r($data);
    }

Here I got solution of dynamic menu design in CodeIgniter:

 <?php
    //GET CATEGORY ID FROM USER REGISTARTION
    foreach ($test as $val) {
        $array = explode(",", $val->category_id);

        //CATEGORY ID MATCH WITH CATEGORY NAME FROM CATEGORY TABLE
        foreach ($listMenuLevel1 as $key => $value) {
            if (in_array($value->category_id, $array)) {
                ?>  
                <ul class="sidebar-menu">
                    <li class="treeview">
                        <a href="#">
                            <i class="fa fa-share"></i> <span><?php echo $value->category_name; ?></span> 
                            <i class="fa fa-angle-left pull-right"></i>
                        </a>
                        <ul class="treeview-menu">

                            <?php foreach ($this->main_model->listchildMenus($value->category_id) as $menu2) : ?>
                                <li class="treeview">
                                    <a href="<?php echo base_url(); ?><?php echo $menu2->category_link; ?>"><i class="fa fa-circle-o"></i><?php echo $menu2->category_name; ?><i class="fa fa-angle-left pull-right"></i></a>

                                    <?php foreach ($this->main_model->listchildMenus($menu2->category_id) as $menu3): ?>
                                        <ul class="treeview-menu"> 
                                            <li class="treeview">
                                                <a href="<?php echo base_url(); ?><?php echo $menu3->category_link; ?>"><i class="fa fa-circle-o"></i><?php echo $menu3->category_name; ?></a>
                                            </li>
                                        </ul>
                                    <?php endforeach; ?>
                                </li>
                            <?php endforeach; ?>
                        </ul>
                    </li>
                </ul>
            <?php } ?>
            <?php
        }
    }
    ?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM