如果内部类属性html



导航

    <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;
}

最新更新