在bootstrap 3中,我们将此<li>
课程设置为有效,以便显示导航栏上突出显示的当前页面
<li class="active">
<a href="linkaddress.html">Link</a>
</li>
问题是当您通过包含includes/header.php;
在所有网页上添加菜单时。我无法弄清楚如何在$actual_link
上组合一个switch语句并带回某种调用来在正确的位置插入活动的类。这是我迄今为止的尝试,我老实说,因为我觉得有更好的方法。我怎样才能将li
类放到active
这个开关
$actual_link = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$HTTPHost = $_SERVER[HTTP_HOST];
switch($actual_link)
{
case "http://{$HTTPHost}/index.php" ||
"http://{$_SERVER[HTTP_HOST]}/admin.php?edit_home":
//setToActive
break;
case "http://{$HTTPHost}/warrants.php" ||
"http://{$_SERVER[HTTP_HOST]}/admin.php?edit_warrants":
//setToActive
break;
case "http://{$HTTPHost}/faq.php" ||
"http://{$_SERVER[HTTP_HOST]}/admin.php?edit_faq":
//setToActive
break;
case "http://{$HTTPHost}/aboutus.php" ||
"http://{$_SERVER[HTTP_HOST]}/admin.php?edit_aboutus":
//setToActive
break;
}
&GT;
答案 0 :(得分:0)
在包含标题之前的页面中设置一个变量来指示当前页面。例如,在index
页面中:
$active = 'index';
include('includes/header.php');
现在在header.php
创建链接时使用类似
<?php global $active ?>
<li <?php if( isset($active) && $active == 'index') echo 'class="active"'; ?>>
<a href="index.php">Index</a>
</li>
答案 1 :(得分:0)
您不能在像
这样的case语句中指定多个表达式case "http://{$HTTPHost}/index.php" ||
"http://{$_SERVER[HTTP_HOST]}/admin.php?edit_home":
上述表达式的评估结果为true
。
使用以下synatax
case "http://{$HTTPHost}/index.php":
case "http://{$_SERVER[HTTP_HOST]}/admin.php?edit_home":
//statements
break;