我使用这样的分页系统:
<?php
$p = $_GET['p'];
switch($p)
{
case "start":
$p = "pages/start.php";
$currentPageId = 1;
break;
case "customers":
$p = "pages/customers.php";
$currentPageId = 2;
break;
default:
$p = "pages/start.php";
$currentPageId = 1;
break;
}
?>
我想将 css
class="active"
设置为我所在页面的菜单项。<li>
项目,它就可以工作:
<li><a href="?p=start" <?php if ($currentPageId == 1) {echo "class='active'";}else {} ?>>Start</a></li>
但我想用三元运算符代替。我尝试了这段代码,但它不起作用:
<li><a href="?p=start" <?php ($currentPageId == '1') ? 'class="active"' : '' ?>>Startsida</a></li>
知道为什么吗?
您缺少回声:
<li><a href="?p=start" <?php echo (($currentPageId == '1') ? 'class="active"' : '') ?>>Startsida</a></li>
这应该可以解决问题。
解决第二个问题:
<?php
if($something == true) {
echo "<div id='nav'>"."\n<br>".
"<ul>"."\n<br>".
'<li><a href="?p=start"'. (($currentPageId == '1') ? 'class="active"' : '') .'>Startsida</a></li>'."\n<br>".
'<li><a href="?p=customers" '. (($currentPageId == '1') ? 'class="active"' : '') .' >Customers</a></li>'."\n<br>".
"</ul>"."\n<br>".
"</div>"."\n<br>";
}
?>
正如其他人指出的那样,您错过了回声。我还想指出,在这种情况下你甚至不需要三元运算符,因为在其他情况下你没有做任何事情:
<li><a href="?p=start" <?php if ($currentPageId == '1') echo 'class="active"'; ?>>Startsida</a></li>