通过使用php向其添加类来将选项卡设置为活动

时间:2013-10-15 13:17:50

标签: php

使用php设置标签类的好方法是什么?这里没有涉及jQuery,只有php。我从脚本中获取了选项卡名称。根据{{​​1}},我需要将$tab的名称设置为<li>。关于如何做到这一点的任何好主意?

class="active"

我尝试使用$tab = 'movies'; <ul class="nav nav-tabs"> <li>Books</li> <li>Music</li> <li class="active">Movies</li> <li>Others</li> </ul> 执行此操作,但这一切都非常笨拙和丑陋。

4 个答案:

答案 0 :(得分:1)

我不是直接混合HTML&amp; PHP,但是这样的事情怎么样:

$options = array("books", "music", "movies", "other");
$tab = 'music';

echo '<ul class="nav nav-tabs">';

foreach($options as $o) {
    if($o == $tab) {
        echo '<li class="active">'.ucfirst($o).'</li>';
    } else {
        echo '<li>'.ucfirst($o).'</li>';
    }
}

echo '</ul>';

如果您在模板范围内,也可以使用PHP的替代语法:

<?php 
    $options = array("books", "music", "movies", "other");
    $tab = 'music';
?>
<ul class="nav nav-tabs">
<?php foreach($options as $o): ?>
    <?php if($o == $tab): ?>
        <li class="active"><?php echo ucfirst($o); ?></li>
    <?php else: ?>
        <li><?php echo ucfirst($o); ?></li>
    <?php endif; ?>
<?php endforeach; ?> 
</ul>

答案 1 :(得分:0)

<?php $tabs = array('Books', 'Music', 'Movies', 'Others'); ?>
<ul>
  <?php foreach ($tabs as $tabName): ?>
    <?php $class = ''; ?>
    <?php if ($tab === $tabName) $class = ' class="active"'; ?>
    <li<?php echo $class?>><?php echo $tabName?></li>
  <?php endforeach?>
</ul>

答案 2 :(得分:0)

$tab = 'movies';

<ul class="nav nav-tabs">
    <li <?php if($tab === "Books") { echo class='active'; } ?>>Books</li>
    <li>Music</li>
    <li class="active">Movies</li>
    <li>Others</li>
</ul>

等等

答案 3 :(得分:0)

您是如何生成导航的?基于数据库?在这种情况下,从数据库中检索lael时,您可以比较它们。否则,从带有标签的数组生成它们,遍历标签以生成菜单:

foreach($labels as $label)
{
if($label == $tab)
{// output active}
else
{regular labels}