如何在 Admindek 模板中从数据库创建动态菜单?

问题描述

大家好,我需要帮助。我已经将 admindek 模板与 Codeigniter 3 集成,我想从我的数据库中的 table_menu 中获取菜单,但我不知道如何..我试过但它不起作用。 Soeey 我的英语不好:) .

这是我的Tabel_menu 数据库

id judul_menu 链接 is_main_menu
1 仪表板 mds Dashboard_mds 0
2 访问 mds visit_mds 0
3 大师 # 0
4 用户 用户 3
5 删除图片 删除图片 3
6 数据库 数据库 3

is_main_menu 字段用于父或子菜单(子菜单

这里是 admindek 模板的原始导航脚本:

    <nav class="pcoded-navbar">
        <div class="nav-list">
        <div class="pcoded-inner-navbar main-menu">
        <div class="pcoded-navigation-label">Navigation</div>
        <ul class="pcoded-item pcoded-left-item">
    <!--- I GUESS HERE'S THE CODE START FOR MAIN MENU WITH SUBMENU --->
        <li class="pcoded-hasmenu active pcoded-trigger">
        <a href="javascript:void(0)" class="waves-effect waves-dark">
        <span class="pcoded-micon"><i class="feather icon-home"></i></span>
        <span class="pcoded-mtext">Dashboard</span>
        </a>
  <!--- I GUESS HERE'S THE CODE START FOR SUBMENU --->
        <ul class="pcoded-submenu">
        <li class="active">
        <a href="index.html" class="waves-effect waves-dark">
        <span class="pcoded-mtext">Default</span>
        </a>
        </li>
        <li class="">
        <a href="dashboard-crm.html" class="waves-effect waves-dark">
        <span class="pcoded-mtext">CRM</span>
        </a>
        </li>
        <li class="">
        <a href="dashboard-analytics.html" class="waves-effect waves-dark">
        <span class="pcoded-mtext">Analytics</span>
        <span class="pcoded-badge label label-info ">NEW</span>
        </a>
        </li>
        </ul><!--- END OF SUBMENU SCRIPT --->
        </li><!--- END OF MAIN MENU SCRIPT --->
<!--- HERE'S CODE FOR ONLY MAIN MENU WITH NO SUBMENU --->
        <li class="breadcrumb-item">
        <a href="#!">Forms Wizard</a>
        </li><!--- END OF ONLY MAIN MENU WITH NO SUBMENU --->
        </ul>
        </div>
        </div>
        </nav>

我试过这样但它不起作用..

    <ul class="pcoded-item pcoded-left-item">
     <?PHP 
        $main_menu = $this->db->get_where('tabel_menu',array('is_main_menu' => 0));
         foreach ($main_menu->result() as $main) {
      // Query looking for submenu
      $sub_menu = $this->db->get_where('tabel_menu',array('is_main_menu' => $main->id));
      // checking is there submenu or not
      if ($sub_menu->num_rows() > 0) {
      // main menu dengan sub menu
    echo '<li class="pcoded-hasmenu pcoded-trigger">'
    .anchor($main->link,'<span class="pcoded-micon"><i class="feather icon-home"></i></span><span class="pcoded-mtext">' .$main->judul_menu. "</span>");
     echo "<ul class='pcoded-submenu'><li class=''>";
     foreach ($sub_menu->result() as $sub) {
    echo "<li>". anchor($main->judul_menu,'</li>');
    echo"</ul></li>";}
  }else{
    echo '<li class="breadcrumb-item">'. anchor($main->judul_menu,'</li>');
}
}?>
</ul>
</div>

解决方法

在将 php 代码放入其中之前,您应该小心标记。您应该知道何时必须在 HTML 标记之后关闭它。如果不 。循环不会像你期望的那样运行..

试试这个兄弟,希望对你有帮助..

<ul class="pcoded-item pcoded-left-item">
<?php $main_menu = $this->db->get_where('tabel_menu',array('is_main_menu' => 0));
      foreach ($main_menu->result() as $main) {
      // Query untuk mencari data sub menu
      $sub_menu = $this->db->get_where('tabel_menu',array('is_main_menu' => $main->id));
      // periksa apakah ada sub menu
      if ($sub_menu->num_rows() > 0) {
      // main menu dengan sub menu
    echo "<li class='pcoded-hasmenu'>"
    .anchor($main->link,"<span class='pcoded-micon'><i class='feather icon-home'></i></span>
      <span class='pcoded-mtext'>" .$main->judul_menu. "</span>");
      echo "<ul class='pcoded-submenu'>";
     foreach ($sub_menu->result() as $sub) {
      echo "<li class=''>". anchor($sub->link,'<span class="pcoded-mtext">'. $sub->judul_menu.'</span></li>');}
     echo"</ul></li>";
  }else{
    echo '<li class="">'.anchor($main->link,'<span class="pcoded-micon"><i class="feather icon-edit"></i></span><span class="pcoded-mtext"> '.$main->judul_menu.'</li>');
  }
} ?>
</ul>