CodeIgniter — Как динамически выбирать пункт меню на странице частичного просмотра меню?

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

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.

Надеюсь это поможет.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]