你好,你们只想问一个简单的问题。这都是关于创建导航链接。 因为我有一个导航链接。如果用户选择链接,则链接将突出显示,如果用户单击另一个链接,该链接将突出显示,而前一个链接则不会。在创建我的链接时,我使用一个数组,我循环它来调用动作。
这是我的代码
MY CONTROLLER
public function homepage(){
$data['title'] = "Welcome";
$data['copyright'] = date('Y');
$data['queryViewEntries'] = $this->category_model->viewAllEntry();
$data['link'] = "category";
$this->load->view('common/header_common',$data);
$this->load->view('common/navigation',$data);
$this->load->view('User/contents/homepage');
$this->load->view('common/footer_common',$data);
}
MY VIEW
<li class="nav-header"></li>
<?php
$highlight = $link;
$section = array(
'CATEGORIES' => 'user_controller/homepage',
'ITEMS' => 'item_controller/index',
'SUPPLIERS' => 'supplier_controller/index'
);
foreach($section as $key => $value){
echo "<li class='active'>".anchor($value,$key)."</li>"; //this is the problem how can i set the cliked link to active and the other will be not.
}
?>
</li>
我希望你们可以帮助我。感谢。
答案 0 :(得分:1)
https://www.codeigniter.com/user_guide/libraries/uri.html
//add to your controller
$data['url_link'] = $this->uri->segment(1, 0); //your URL segment /www.website/items
//view
foreach($section as $key => $value){
//class name
$className = ($key === $url_link) ? 'active' : 'no-active';
echo "<li class='$className'>".anchor($value,$key)."</li>";
}
答案 1 :(得分:0)
首先,您可能希望将列表括在&lt; UL&GT;并且在打开它之后不立即关闭您的列表。 (你的编辑可能对你有帮助)。 在循环中,您需要针对当前链接检查每个键并相应地应用样式。类似......
<ul class="nav-header">
<?php
$highlight = $link;
$section = array(
'CATEGORIES' => 'user_controller/homepage',
'ITEMS' => 'item_controller/index',
'SUPPLIERS' => 'supplier_controller/index'
);
foreach($section as $key => $value){
if ($key == $link){
echo "<li class='active'>";
} else{
echo "<li class='inactive'>";
}
echo anchor($value,$key)."</li>";
}
?>
</ul>
您必须确保视图中的“section”数组和$ data ['link']具有相同的值。即重命名它们以匹配例如在你的控制器
$data['link'] = 'CATEGORIES'
或在您的视图中 `$ section = array( 'category'=&gt; 'user_controller /主页', ..... );