我创建了一个应用程序,我想在活动页面上应用活动类。就像fike名称以me_开头一样,那我怎样才能将类“active”应用于它。
这是我的代码:
$pageAttr = basename($_SERVER['REQUEST_URI']);
$files = array("me_dashboard.php","me_my_team.php","me_others.php","me_inbox.php","me_outbox.php");
<li class="<?php echo($pageAttr == $files[0] || $pageAttr == $files[1] || $pageAttr == $files[2] || $pageAttr == $files[3] || $pageAttr == $files[4]) ? "active":"" ?>"><a href="me_dashboard.php"><i class="icon-user icon-large"></i> Me</a></li>
这不是正确的代码。请建议我用PHP实现解决方案的其他方法。
答案 0 :(得分:2)
如果你有这样的文件数组
$files = array("me_dashboard.php",
"me_my_team.php",
"me_others.php",
"me_inbox.php",
"me_outbox.php"
);
比你可以使用in_array()
<li class="<?php echo (in_array(basename($_SERVER['PHP_SELF']), $files) ? 'active' : '')?>">
如果您在class=
条件中移植if
属性会更好,这样您就不会获得空的class=""
标记。
如果您想更多地重构代码,请考虑将整个代码移至function
,然后return
将条件移至true
。
如评论所示,您希望获取文件的前缀,而不是使用substr()
<?php
$page_name = 'me_dashboard.php';
$fetch_prefix = substr($page_name, 0, 3);
echo $fetch_prefix;
?>
<li class="<?php echo (($fetch_prefix == 'me_') ? 'active' : '')?>">A</li>
答案 1 :(得分:1)
你可以尝试这个
<?php
$pageAttr = basename($_SERVER['REQUEST_URI']);
$files = array("me_dashboard.php","me_my_team.php","me_others.php","me_inbox.php","me_outbox.php");
foreach($files as $file)
{
$class_text = "";
if($file==$pageAttr)
{
$class_text = ' class="active" ';
}
?>
<li <?php echo $class_text;?> ><a href="<?php echo $file;?>"><i class="icon-user icon-large"></i> Me</a></li>
<?php
}
?>