这是我的网站nav.php看起来像:
<li <?php echo $active; ?>><a href="index">Home</a></li>
<li <?php echo $active; ?>><a href="report">Report</a></li>
<li <?php echo $active; ?>><a href="chart">Chart</a></li>
<li <?php echo $active; ?>><a href="export">Export</a></li>
和header.php页面如下所示:
<?php
$pageName = basename($_SERVER['PHP_SELF']);
$explode = explode('.', $pageName);
$title = ucfirst($explode[0]);
if($title == "Report") {
$active = 'class="active"';
} else {
$active = '';
}
?>
我正在使用上面的代码来显示当前查看任何页面的css .active
类。但它正在为所有页面添加.active
类。
注意:我有4页。例如:索引,报告,图表和导出。
和我的整页结构是这样的:
在index.php页面中,我正在调用以下页面。
header.php
nav.php
js.php
footer.php
答案 0 :(得分:2)
使用此
$activePage = basename($_SERVER['PHP_SELF'], ".php");
并在你的
中 <li <?php if($activePage=="Report") { echo "class='active'"; } ?>><a href="index">Home</a></li></li>
答案 1 :(得分:1)
尝试这样做:
<li class="<?= ('Home' == $title) ? 'active' : ''; ?>">
<a href="index">Home</a>
</li>
<li class="<?= ('Report' == $title) ? 'active' : ''; ?>">
<a href="report">Report</a>
</li>
<li class="<?= ('Chart' == $title) ? 'active' : ''; ?>">
<a href="chart">Chart</a>
</li>
<li class="<?= ('Export' == $title) ? 'active' : ''; ?>">
<a href="export">Export</a>
</li>
答案 2 :(得分:1)
最简单的方法:
$pages = array();
$pages["home.php"] = "Home";
$pages["report.php"] = "Report";
$pages["chart.php"] = "Chart";
$pages["export.php"] = "Export";
$active = "home.php";
<?php foreach($pages as $url=>$title):?>
<li>
<a <?php if($url === $active):?>class="active"<?php endif;?> href="<?php echo $url;?>">
<?php echo $title;?>
</a>
</li>
<?php endforeach; ?>
答案 3 :(得分:1)
因为您只能同时定义ng-repeat
一次。
您可能应该使用数组:
$active
现在你遍历那个数组,检查,哪个是活动的:
$navigation = array('index', 'report', 'chart', 'export);
答案 4 :(得分:1)
包装将为您提供比静态内容更多的灵活性
$pageName = basename($_SERVER['PHP_SELF']);
$explode = explode('.', $pageName);
$title = ucfirst($explode[0]);
$nav = [
'index' => 'Home',
'report' => 'Report',
'chart' => 'Chart',
'export' => 'Export'
];
foreach ($nav as $key => $value) {
echo '<li class="'.($key == $title ? 'active' : '').'>';
echo '<a href="'.$key.'">'.$value.'</a>' ;
echo '</li>'
}
答案 5 :(得分:0)
尝试执行以下操作
<li <?php echo ($pageName=="index.php")?" class='active'" :""; ?>><a href="index">Home</a></li>
<li <?php echo ($pageName=="report.php")?" class='active'" :""; ?>><a href="report">Report</a></li>
<li <?php echo ($pageName=="chart.php")?" class='active'" :""; ?>><a href="chart">Chart</a></li>
<li <?php echo ($pageName=="export.php")?" class='active'" :""; ?>><a href="export">Export</a></li>