-2

这是我的代码:当 $thisPage 在该页面上它添加活动的类时,我得到了第一个和最后一个“li”工作。但对于下拉菜单,我有点失落。我尝试做一系列页面和其他一些事情,但没有运气。

<ul class="nav sf-menu">
    <li><a href="index.php" <?php if ($thisPage == 'index'){?> class="active"<?php }?>>Home</a></li>
    <li class="sub-menu"><a href="javascript:{}">About</a>          
      <ul>
        <li><a href="team.php"><span>--</span> The Team</a></li>
        <li><a href="about.php"><span>--</span> About</a></li>
        <li><a href="services.php"><span>--</span> Services</a></li>
        <li><a href="testimonials.php"><span>--</span> Testimonials</a></li>
        <li><a href="timeline.php"><span>--</span> Timeline</a></li>
      </ul>
    </li>
    <li><a href="gallery.php" <?php if ($thisPage == 'gallery'){?> class="active"<?php }?>>Gallery</a></li>
</ul>
4

2 回答 2

2

您可以使用多个OR条件:

<li class="sub-menu"><a <?php echo ($thisPage == 'team' || $thisPage == 'about' || $thisPage == 'services' || $thisPage == 'testimonials' || $thisPage == 'timeline') ? 'class="active"' : ''?> href="javascript:{}">About</a>

或者最好是一个数组:

<?php $aboutPages = array('team','about','services','testimonials','timeline'); ?>
<li class="sub-menu"><a <?php echo in_array($thisPage,$aboutPages) ? 'class="active"' : ''?> href="javascript:{}">About</a>    
于 2013-10-09T06:15:17.777 回答
0

数组可能是你应该去这里的方式。使用多维数组并进行迭代,见下文。递归地使用函数允许更少/更健壮的代码。这将适用于您的菜单以及具有许多子级别的菜单。

$menu = array(
    'index'=>'Home',
    'about'=>array(
        'team'=>'The Team',
        'about'=>'About',
        'services'=>'Services',
        'testimonials'=>'Testimonials',
        'timeline'=>'Timeline'
    ),
    'gallery'=>'Gallery'
);

function create_menu($menu,$thisPage)
{
    $i = 1;
    foreach ($menu as $page=>$title)
    {
        if (is_array($title))
        {
            echo '<ul>';
            create_menu($title);
        }
        else
        {
            $active    = ($thisPage == $page) ? "active":"";
            echo  "<li><a class=\"$active\" href=\"{$page}.php\"><span>--</span> {$title}</a></li>";
            echo (count($menu) == $i) ? "</ul>":"";

            $i++;
        }
    }
}

// ehco'ing out in this example, but probably better to store in a variable before echoing
echo '<ul>';
create_menu($menu,'index'); // here you pass in $thisPage like so create_menu($menu,$thisPage);
echo '</ul>';
于 2013-10-09T06:15:00.570 回答