2013-10-15 36 views
0

什么是使用php设置选项卡类的好方法?这里没有涉及jQuery,只有php。我从脚本中获取标签名称。根据$tab,我需要将该名称的<li>设置为class="active"。关于如何做到这一点的任何好点子?设置一个选项卡,通过使用php添加一个类来激活

$tab = 'movies'; 

<ul class="nav nav-tabs"> 
    <li>Books</li> 
    <li>Music</li> 
    <li class="active">Movies</li> 
    <li>Others</li> 
</ul> 

我试着用str_replace来做这件事,但那都很笨拙和丑陋。

回答

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> 
+0

好方法。我正在使用这个。 – jmenezes

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

0

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

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

不是。它全部使用php生成。没有涉及数据库。 – jmenezes

相关问题