我正在尝试用单独的PHP文件创建一个动态的PHP导航菜单。
我目前拥有以下文件:
currentPage.php-此文件将获取用户所在页面的当前页面名称
<?php
$page = basename($_SERVER['PHP_SELF']);
$_SESSION['page'] = $page;
?>
fetchPages-此文件应从SQL数据库中获取所有活动页面,并创建一个列表,当用户位于相应页面时,将活动类添加到相应页面标题文本中
<?php
include 'connect.php';
include 'currentPage.php';
$sql = "SELECT pageTitle, pageUrl FROM pages ORDER BY id";
$result = mysqli_query($con, $sql);
if(mysqli_num_rows($result) > 0){
}
else{
$msg = "No pages found";
}
?>
<?php while ($row = mysqli_fetch_assoc($result)) { ?>
<a class="<?php if($_SERVER['PHP_SELF'] == $_SESSION['page']){echo "active";} ?>" href="<?php echo $row['pageUrl'] ?>"><?php echo $row['pageTitle'];?></a>
<?php } ?>
<br>
问题是它不工作,因为它添加了一个“活动”类到所有行。任何帮助,在正确的方向将是非常感谢!
1条答案
按热度按时间qhhrdooz1#
1.您应该在开始时使用会话初始化-
session_start();
if($_SERVER['PHP_SELF'] = $_SESSION['page'])
-在这里您指定一个值,而不是比较。使用==
或===
1.逻辑错误-您将从数据库中获取字符串,但不将数据库中的值与当前页面进行比较,而是将
PHP_SELF
与$_SESSION['page']
进行比较,结果始终为true。1.将数据写入
$_SESSION['page']
不是一个好主意