你好漂亮的人
我已经在这个问题上花了一些时间了,我似乎并没有自己解决这个问题……希望您能为我提供帮助。我的目标是:在一个模式为mvc的项目中,由php控制的工作导航栏。
我想通过索引文件中的开关来控制视图:
<?php
// display view according view-parameter
switch ($view) {
case 'home':
include '../view/home.php'; break;
case 'overview':
include '../view/overview.php'; break;
case 'settings':
include '../view/settings.php'; break;
default:
include '../view/home.php'; break;
}
?>
控制器更改视图。
$view = isset($_GET['view']) ? $_GET['view'] : '';
我想将此导航(引导程序)包含在开关上方的索引文件中:
<nav class="navbar sticky-top navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="<?php $view = 'home';?>">GG</a>
<div class="collapse navbar-collapse">
<div class="navbar-nav">
<a href="<?php $view = 'home';?>" class="nav-item nav-link <?php if($view == 'home') { echo 'active'; } ?>">Home</a>
<a href="<?php $view = 'overview';?>" class="nav-item nav-link <?php if($view == 'overview') { echo 'active'; } ?>">Overview</a>
<a href="<?php $view = 'settings';?>" class="nav-item nav-link <?php if($view == 'settings') { echo 'active'; } ?>">Settings</a>
</div>
</div>
</nav>
在这里您可以看到我如何尝试使其与php一起使用。可悲的是,它仅停留在最后一个链接“设置”上,所有项目均处于活动状态。这是我目前的情况。
答案 0 :(得分:2)
在这里您可以看到我如何尝试使其与php一起使用。可悲的是,它仅停留在最后一个链接“设置”上,所有项目均处于活动状态。这是我目前的情况。
那是因为您将$view
变量的值设置为给定的字符串,并检查它是否等于此字符串的值。
$view = 'home';
然后
$view == 'home'
将始终为真。
代替
<a href="<?php $view = 'home';?>" class="nav-item nav-link <?php if($view == 'home') { echo 'active'; } ?>">Home</a>
您需要
<a href="?view=home" class="nav-item nav-link <?php if($view == 'home') { echo 'active'; } ?>">Home</a>