I am developing one website using codeigniter with multidimensional dynamic menus. I am using codeigniter and mysql I have create menu,submenu1,submenu2. Now the Menu and Submenu1 is loading in the website but I try to load submenu2 I am getting the problem I am using array_push method in php. Here is my code in this code I already load menu and submenu1 can any body help me how to load submenu2 also...
This is My View Code..
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="<?php echo base_url()?>Pixel/index" >Home</a></li>
<?php foreach($menus as $menu) { ?>
<li id="mainmenu">
<a href="#" class="dropdown-toggle" id="<?php echo $menu->m_id; ?>" data-toggle="dropdown"> <?php echo $menu->menuname; ?> <b class="caret"></b></a>
<ul class="dropdown-menu">
<?php
if (isset($menu->children)) {
foreach ($menu->children as $child) {
?>
<li>
<a href="<?php echo base_url()?>Pixel/corporate" id="submenuone" class="dropdown-toggle"><?php echo $child->submenu_name; ?>
</a>
</li>
<?php
}
} ?>
</ul>
</li>
<?php } ?>
This is my controller code
public function index()
{
$menus = $this->Px_Model->populateMenus();
$data = array('menus' => $menus);
$this->load->view('pxHead');
$this->load->view('pxHeader');
$this->load->view('pxNav',$data);
$this->load->view('pxSlider');
$this->load->view('pxHome');
$this->load->view('pxFooter');
}
This is my model code
public function populateMenus(){
$this->db->select("*");
$this->db->from("menu");
$q = $this->db->get();
$final = array();
if ($q->num_rows() > 0) {
foreach ($q->result() as $row){
$this->db->select("*");
$this->db->from("submenu1");
$this->db->where("menu_id", $row->m_id);
$q = $this->db->get();
if ($q->num_rows() > 0) {
$row->children = $q->result();
}
array_push($final, $row);
}
}
return $final;
}
Try like this.Need to make multidimensional array.
MODEL
// $final = array();
if ($q->num_rows() > 0) {
foreach ($q->result() as $row){
$final[]['menuname'] = $row->menuname;
$final[]['m_id'] = $row->m_id;
$this->db->select("*");
$this->db->from("submenu1");
$this->db->where("menu_id", $row->m_id);
$q = $this->db->get();
if ($q->num_rows() > 0) {
$final[]['children'] = $q->result();
}
}
}
return $final;
}
VIEW
<div class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="<?php echo base_url()?>Pixel/index" >Home</a></li>
<?php foreach($menus as $key=>$menu) { ?>
<li id="mainmenu">
<a href="#" class="dropdown-toggle" id="<?php echo $menu['m_id']; ?>" data-toggle="dropdown"> <?php echo $menu['menuname']; ?> <b class="caret"></b></a>
<ul class="dropdown-menu">
<?php
if (isset($menu['children'])) {
foreach ($menu['children'] as $child) {
?>
<li>
<a href="<?php echo base_url()?>Pixel/corporate" id="submenuone" class="dropdown-toggle"><?php echo $child->submenu_name; ?>
</a>
</li>
<?php
}
} ?>
</ul>
</li>
<?php } ?>