CodeIgniter - 如何在菜单的局部视图页面中动态 select 菜单项?
CodeIgniter - How to dynamically select a menu item in a partial view page for menu?
基本上,我有一个菜单,可以导航到我的应用程序中的不同页面,其中包含这些页面的标题。此菜单创建为局部视图。我有一个名为 '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' 的单个控制器的方法,从我的代码中可以理解 [=28] =]'menu_view.php'.
CodeIgniter - 2.2.0,PHP - 5.3.0
每个列表项都需要一个 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,以及它是否与字符串匹配。
我还注意到您正在使用 "base_url()" 作为您的链接,使用 "site_url()" 会让您的生活更轻松,因为它添加了 index.php 本身。
希望对您有所帮助。
基本上,我有一个菜单,可以导航到我的应用程序中的不同页面,其中包含这些页面的标题。此菜单创建为局部视图。我有一个名为 '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' 的单个控制器的方法,从我的代码中可以理解 [=28] =]'menu_view.php'.
CodeIgniter - 2.2.0,PHP - 5.3.0
每个列表项都需要一个 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,以及它是否与字符串匹配。
我还注意到您正在使用 "base_url()" 作为您的链接,使用 "site_url()" 会让您的生活更轻松,因为它添加了 index.php 本身。
希望对您有所帮助。