导航
<li>
<a href="<?=base_url();?>backend/Administrator"
class="<?php ($_SERVER['REQUEST_URI']) ? 'class="waves-effect active"' : 'class="waves-effect"'; ?>"><i class="zmdi zmdi-view-dashboard"></i> <span> Home </span> </a>
</li>
<li>
<a href="<?=base_url();?>backend/Item" class="waves-effect"><i class="zmdi zmdi-view-list-alt"></i> <span> Item Management </span> </a>
</li>
<li>
<a href="<?=base_url();?>backend/Item/tag" class="waves-effect"><i class="zmdi zmdi-collection-plus"></i> <span> Category Management </span> </a>
</li>
<li>
<a href="<?=base_url();?>backend/User" class="waves-effect"><i class="zmdi zmdi-account-o"></i> <span> User Management </span> </a>
</li>
<li>
<a href="<?=base_url();?>backend/Transaksi" class="waves-effect"><i class="fa fa-exchange"></i> <span> Transactions </span> </a>
</li>
<li>
<a href="<?=base_url();?>backend/Transaksi/report" class="waves-effect"><i class="zmdi zmdi-comment-more"></i> <span> Report </span> </a>
</li>
</ul>
我在班上使用,但它不起作用。
如果URL处于活动状态,则使用类waves-effect active
。如果不活动,请使用waves-effect
类
请帮助我提供任何解决方案。
,因为重复了类属性并且缺少某些echos。
替换:
class="<?php ($_SERVER['REQUEST_URI']) ? 'class="waves-effect active"' : 'class="waves-effect"'; ?>"
with:
class="<?php ($_SERVER['REQUEST_URI'] ? echo 'waves-effect active' : echo 'waves-effect') ?>"
或:
<?php ($_SERVER['REQUEST_URI'] ? echo 'class="waves-effect active"' : echo 'class="waves-effect"') ?>
有多个可能的解决方案。
您需要echo
值并删除class=
零件,如果您不希望它重复
<li>
<a href="<?=base_url();?>backend/Administrator"
class="<?php ($_SERVER['REQUEST_URI']) ? echo 'waves-effect active' : echo 'waves-effect'; ?>"><i class="zmdi zmdi-view-dashboard"></i> <span> Home </span> </a>
</li>
带有$ _server ['request_uri']的内容可能总是存在
您是否追随更像
<li>
<a href="<?= base_url(); ?>backend/Administrator"
class="<?= ($_SERVER['REQUEST_URI'] != '/home/') ? 'waves-effect active' : 'waves-effect'; ?>">
<i class="zmdi zmdi-view-dashboard"></i> <span> Home </span>
</a>
</li>
在这里您正在测试实际路径,而不仅仅是测试它是否存在。
$_SERVER['REQUEST_URI'] != '/home/'
您只需使用<?=
<?= ($_SERVER['REQUEST_URI'] != '/home/') ? 'waves-effect active' : 'waves-effect'; ?>
您应该执行 var_dump($ _ server ['request_uri']); 以查看此全局的作用,并确保您的路径看起来像您想要的那样。
弄乱'/'斜线可能很痛苦,所以... 您可以做一些事情,例如使用Trim清理前导/尾随的斜线'/',以解决可能会使您发疯的斜线的潜在问题。
trim($_SERVER['REQUEST_URI'],'/') =='home'
您课程的进一步简化将是...
class="waves-effect<?= (trim($_SERVER['REQUEST_URI'],'/') =='home') ? ' active' : ''; ?>">
或
class="waves-effect <?= (trim($_SERVER['REQUEST_URI'],'/') =='home') ? 'active' : ''; ?>">
注意现有类和"添加"类定义之间的空间位置 - 活动。
您需要玩一些。
您可以使用Codeigniter URI类和URL助手来使事情变得更加干净,更容易:
<?php
$this->load->helper('url');
$links = [
[
'uriStr' => 'backend/administrator',
'text' => 'Home',
'icon' => 'zmdi zmdi-view-dashboard',
],
[
'uriStr' => 'backend/item',
'text' => 'Item Management',
'icon' => 'zmdi zmdi-view-list-al',
],
[
'uriStr' => 'backend/item/tag',
'text' => 'Category Management',
'icon' => 'zmdi zmdi-collection-plus',
],
[
'uriStr' => 'backend/user',
'text' => 'User Management',
'icon' => 'zmdi zmdi-account-o',
],
[
'uriStr' => 'backend/transaksi',
'text' => 'Transactions',
'icon' => 'fa fa-exchange',
],
[
'uriStr' => 'backend/transaksi/report',
'text' => 'Report',
'icon' => 'zmdi zmdi-comment-more',
],
];
foreach( $links as $link )
{
$icon = '<i class="' . $link['icon'] . '"></i>';
$class = $this->uri->uri_string() == $link['uriStr']
? 'waves-effect active'
: 'waves-effect';
echo '<li>' .
anchor( $link['uriStr'], $icon . ' <span> ' . $link['text'] . ' </span> ', 'class="' . $class . '"' ) .
'</li>' .
PHP_EOL;
}