如何为第二个标签设置“class = active”?

时间:2017-04-14 10:44:40

标签: php arrays

我有一些标签。有时,第一个标签是“引言”,有时“轮廓”是第一个标签。我首先设置了介绍class = active。但是当大纲出现时,我不知道如何将其类设置为活动状态。

代码如下所示

<ul class="nav-tabs" role="tablist">
    <?php 
    $tabs = array();
    if(!$sessId == "" && !$checkcourse){
        $tabs = array("introduction"=>true, "outline"=>true,"announcement"=>false,"discussion"=>false,"review"=>true, "student"=>true, "comment"=>true); 
    } else if($sessId == "") {
        $tabs = array("introduction"=>true, "outline"=>true,"announcement"=>false,"discussion"=>false,"review"=>true, "student"=>false, "comment"=>true); 
    } else {
        $tabs = array("introduction"=>false, "outline"=>true,"announcement"=>true,"discussion"=>true,"review"=>true, "student"=>true, "comment"=>false); 
    }
    ?>                              

    <?php if($tabs['introduction']) { ?>
        <li class="active"><a href="#introduction" role="tab" data-toggle="tab">Introduction</a></li>
    <?php } ?>
    <?php if($tabs['outline']) { ?>
        <li><a href="#outline" role="tab" data-toggle="tab">Outline</a></li>
    <?php } ?>
    <?php if($tabs['review']) { ?>
        <li><a href="#review" role="tab" data-toggle="tab">Review</a></li>
    <?php } ?>
    <?php if($tabs['student']) { ?>
        <li><a href="#student" role="tab" data-toggle="tab">Student</a></li>
    <?php } ?>
    <?php if($tabs['comment']) { ?>
        <li><a href="#comment" role="tab" data-toggle="tab">Comment</a></li>
    <?php } ?>
    <?php if($tabs['announcement']) { ?>
        <li><a href="#announcement" role="tab" data-toggle="tab">Announcement</a></li>
    <?php } ?>
    <?php if($tabs['discussion']) { ?>
        <li><a href="#discussion" role="tab" data-toggle="tab">Discussion</a></li>
    <?php } ?>                  
</ul>

1 个答案:

答案 0 :(得分:1)

使用三元运算符进行简单检查:

<?php if($tabs['outline']) {?>
    <li <?=$tabs['introduction']? '' : ' class="active"';?>><a href="#outline" role="tab" data-toggle="tab">Outline</a></li>
<?php } ?>

因此,检查$tabs['introduction']是否设置,然后您不需要class="active",否则添加此类。

<强>更新 但是,由于标签的第一项可以更改,我建议创建简单的foreach

$is_first = true;
foreach ($tabs as $tab_name => $value) {
    if ($value) {
        echo '<li' . ($is_first? ' class="active"' : '') . '><a href="#' . $tab_name . '" role="tab" data-toggle="tab">' . $tab_name . '</a></li>';
        $is_first = false;  // fix that we have first value here
    }
}

此处您的主要问题是如何关联href值和标题。