По сути, у меня есть меню, которое работает как навигация по различным страницам в моем приложении, содержащее заголовок этих страниц. Это меню создано как частичное представление. У меня есть папка с именем «обертоны», внутри у меня есть меню частичное представление страницы с именем ‘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’ в соответствующем методе контроллера. Например, для «Обозначение» Чтобы выбрать название, я добавил следующее в свой метод контроллера:
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
Каждый элемент списка потребует оператора 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.
Надеюсь это поможет.
Других решений пока нет …