0

使用 php 设置选项卡类的好方法是什么?这里没有涉及 jQuery,只有 php。我从脚本中获取标签名称。基于$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>

我尝试使用 来执行此操作str_replace,但这一切都非常笨拙和丑陋。

4

4 回答 4

1

我不是直接混合 HTML 和 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>
于 2013-10-15T13:24:40.750 回答
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>

等等

于 2013-10-15T13:25:52.657 回答
0

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

foreach($labels as $label)
{
if($label == $tab)
{// output active}
else
{regular labels}    
于 2013-10-15T13:26:19.850 回答
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>
于 2013-10-15T13:24:38.373 回答