【问题标题】:CodeIgniter Dynamic Menu Loader is not working ProperlyCodeIgniter 动态菜单加载器无法正常工作
【发布时间】:2013-09-30 15:16:53
【问题描述】:

我是 CodeIgniter 的初学者。我正在 Ci 中创建一个小型应用程序,从数据库加载我的菜单。

  1. 数据库由 3 个字段组成(id,menu_Name,menu_link)

  2. 我在库中创建了一个函数来从 db 中获取数据

  3. 通过加载库创建控制器

附上我创建的代码

库代码 文件夹结构 ::::---- library/Functions.php

function getMenus()
{
    $arrRow =array();
    $sql    = "select * from tbl_menus ";
    $res    =mysql_query($sql); 
    if(mysql_num_rows($res) >0) {
        while($row= mysql_fetch_object($res)){
                $arrRow[]   =$row;
        }

    }

} 

控制器代码

    public function index()
{
   $val_menu = $this->input->post('menu_Name');
   $val_link= $this->input->post('menu_link');
   $query=$this->db->get_where('tbl_menus',array('menu_Name'=>$val_menu,'menu_link'=>$val_link));

   if ($query->num_rows() > 0)
   {
    $arrRow=$query->row_array();
    $data=$arrRow;
   }
    $data=array('menu_Name'=>$data,'menu_link'=>$data);
    $this->load->helper('url');
    $this->load->database();

    $this->load->view('Header');  
    $this->load->view('SideMenu',$data);     
    $this->load->view('Pages/MainPage',$data);   
    $this->load->view("Footer");  
}

我的查看代码

<?php

$arrMenus=array();
$arrMenus   =$this->functions->getMenus();

?>

<div class="container">

<div class="sidebar1">



<?php if(count($arrMenus) >0) {
foreach($arrMenus as $key_menu=>$val_menu) {
$menu_link  =$val_menu['menu_link'];?> 
<ul class="nav">
//Before Edit
<li><a href="<?=site_url()?>/<?=$menu_link?>" class="lnk"><?=$val_menu['menu_name']?>
//After Edit
<li><a href="<?=site_url()?>/<?php echo $menu_link?>" class="lnk"><?php echo  $val_menu['menu_name']?></a></li>  
</a></li>
</ul>

Print_r() 结果

Array ( [menuId] => 1 [menu_Name] => UserHome [menu_link] => Pages/MainPage ) 

视图无法正常工作..即视图页面未显示菜单...所以我在控制器内使用了 print_r($arrMenus);..它显示了数据...但菜单链接留空。 Print_r($arrMenus) 在视图页面中显示转换问题的错误

【问题讨论】:

  • 怎么不能正常工作?解释问题。
  • 视图无法正常工作..即视图页面没有显示菜单...所以我使用 print_r($arrMenus);..它显示数据...但菜单链接被留下空白
  • 您是否启用了short tags?试试&lt;?php echo $var; ?&gt; 而不是&lt;?=$var?&gt;
  • 你好,我要在哪里试试这个内部视图?

标签: php mysql codeigniter


【解决方案1】:

试试这个

  foreach($arrMenus->result() as $key_menu=>$val_menu)

【讨论】:

  • 您好,我已经尝试过了……但没有显示……有没有办法检查除了 print_r() 之外的视图页面上是否出现了 db 值
猜你喜欢
  • 1970-01-01
  • 2018-05-02
  • 2018-11-14
  • 2014-12-27
  • 2017-11-11
  • 2017-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多