基本上,我有一个菜单,它可以作为导航到我的应用程序中包含这些页面标题的不同页面。此菜单创建为部分视图。我有一个名为'partials'的文件夹,在我的菜单部分视图页面中名为'menu_view.php'。这是'menu_view.php'的代码:
<div id="menu" class="box">
<ul class="box">
<li id="<?php if(isset($controller_name)) echo 'selected'; ?>"><a href="<?php echo base_url(); ?>index.php/admin_logins"><span>Home</span></a></li>
<li id="<?php if(isset($controller_name)) echo 'selected'; ?>"><a href="<?php echo base_url(); ?>index.php/admin_logins/meal2"><span>Add Meal</span></a></li>
<li id="<?php if(isset($controller_name)) echo 'selected'; ?>"><a href="<?php echo base_url(); ?>index.php/admin_logins/designation"><span>Designation</span></a></li>
<li id="<?php if(isset($controller_name)) echo 'selected'; ?>"><a href="<?php echo base_url(); ?>index.php/admin_logins/employee2"><span>Employee</span></a></li>
<li id="<?php if(isset($controller_name)) echo 'selected'; ?>"><a href="<?php echo base_url(); ?>index.php/admin_logins/role"><span>Role</span></a></li>
<li id="<?php if(isset($controller_name)) echo 'selected'; ?>"><a href="<?php echo base_url(); ?>index.php/admin_logins/user"><span>User</span></a></li>
<li id="<?php if(isset($controller_name)) echo 'selected'; ?>"><a href="<?php echo base_url(); ?>index.php/admin_logins/meal"><span>Meal Information</span></a></li>
<li id="<?php if(isset($controller_name)) echo 'selected'; ?>"><a href="<?php echo base_url(); ?>index.php/admin_logins/meal_bill_config"><span>Meal Bill Configuration</span></a></li>
<li id="<?php if(isset($controller_name)) echo 'selected'; ?>"><a href="<?php echo base_url(); ?>index.php/report_meal_lists/index"><span>Reports</span></a></li>
</ul>
</div>
为了显示某个选定的菜单项,我在相应的控制器方法中添加了一个名为'controller_name'的数组索引。例如,要选择'Designation'标题,我已将以下内容添加到我的控制器方法中:
function designation() {
//i've written controller's specific code here.
//i'm not showing this as it has no relation with the question
$data["controller_name"] = 'admin_logins/designation';
$this->load->view('/admin_logins/designation_view', $data);
}
在视图页面('/ admin_logins / designation_view')中,我有这个:
$this->load->view('partials/menu_view', $controller_name);
但是我没有选择我的菜单项。
我做错了什么?
请注意,我的菜单中的指定和大多数其他标题来自名为'admin_logins'的单个控制器的方法,从我的代码中可以理解'menu_view.php'
CodeIgniter - 2.2.0,PHP - 5.3.0
答案 0 :(得分:1)
每个列表项都需要if语句,如下所示;
<ul class="box">
<li id="<?php if(isset($controller_name) == 'admin_logins') echo 'selected'; ?>"><a href="<?php echo site_url('admin_logins'); ?>">Home</a></li>
<li id="<?php if(isset($controller_name) == 'admin_logins/meal2') echo 'selected'; ?>"><a href="<?php echo site_url('admin_logins/meal2'); ?>">Meal</a></li>
...
</ul>
所以你要检查是否设置了$ controller_name,以及它是否与字符串匹配。
我也注意到你正在使用&#34; base_url()&#34;对于你的链接,它会让你的生活更容易使用&#34; site_url()&#34;它添加了index.php本身。
希望这有帮助。