我正在尝试使用$current_url = basename($_SERVER['PHP_SELF']);
来确定我当前所在的页面,考虑到我的导航(html)存储在一个php文件中,并包含在每个页面中。下面是我用来确定哪个导航选项应该处于活动状态的代码:
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/no-background.css">
<ul>
<?php
$current_url = basename($_SERVER['PHP_SELF']);
$active = "class=\"active\"";
?>
<?php if ($current_url == "globaluser.php") { ?>
<li <?php echo $active;?> > <?php } ?> <a href="globaluser.php?Agent=<?php echo $Agent;?>">Overview</a></li>
<?php if ($current_url == "search.php") { ?>
<li <?php echo $active;?> > <?php } ?> <a href="search.php?Agent=<?php echo $Agent?>">Add new client</a></li>
<?php if ($current_url == "viewadmins.php") { ?>
<li <?php echo $active;?> > <?php } ?> <a href="viewadmins.php?Agent=<?php echo $Agent?>">View admins</a></li>
<li class="border-right"><a href="emails.php?Agent=<?php echo $Agent?>">E-mails</a></li>
<li class="right border-right"><a href="logout.php"><?php echo $Agent?></a>
<ul class="drop1">
<li><a href="earnings.php?Agent=<?php echo $Agent?>">Earnings</a></li>
<li id="hover-trigger"><a href="#">Change Password</a>
<ul class="drop2">
<li>
<form action="changepass.php?Agent=<?php echo $Agent?>" method="POST">
<input type="password" name="1" placeholder="Enter new password">
<input type="password" name="2" placeholder="Repeat new password">
</li>
<li>
<input type="submit" name="changepw" class="button" value="Change">
</form>
</li>
</ul>
</li>
<li>
<form action="logout.php">
<input type="submit" class="button" value="Log out">
</form>
</li>
</ul>
</li>
但是它没有起作用。它显示活动页面为活动状态,但是它将2个页面显示为简单超链接。它看起来像这样:
? $active : ''
为什么有问号和active后面的所有内容?它起作用了,你救了我! - Predrag Beocanin$letter = ($foo == 'bar') ? 'a' : 'z';
代替if($foo == 'bar') { $letter = 'a'; } else{ $letter = 'z'; }
。 - djheru<?php if($current_url == "globaluser.php"){echo $active} ?>
,但我个人认为使用三元运算符比单行if更易读,只需注意else部分(即:
后面的内容)是必须的,这就是为什么我添加了一个空字符串的原因。 - omma2289