[英]How do I set an 'active' class to a menu item using PHP?
我想为当前活动页面设置class="active"
,但无法使其正常工作。 每次包含<?php echo ($page == 'home') ? 'class="current"' : '';?>
时,我都会不断遇到相同的错误<?php echo ($page == 'home') ? 'class="current"' : '';?>
<?php echo ($page == 'home') ? 'class="current"' : '';?>
在我的锚和列表标签中:
解析错误:语法错误,意外的“ home”(T_STRING),期望为“,”或“;” 在第18行的C:\\ Users \\ Standard \\ Desktop \\ Test \\ includes \\ top.php中
我只是不知道我现在在做什么错……过去3个小时我一直在研究和寻找答案,但仍然无法解决。 我只是不断收到语法错误。 :(
这是我当前的代码:
<?php
echo '
<div class="top-nav-bg">
<div class="top-nav container">
<div class="row">
<div class="top-nav sixteen columns">
<ul>
<li><a <?php echo ($page == 'home') ? 'class="active"' : '';?> href="/index.php">Home</a></li>
<li><a href="/about-us/">About Us</a></li>
<li><a href="/our-services/">Our Services</a></li>
<li><a href="/products/">Products</a></li>
<li><a href="/contact-us/">Contact Us</a></li>
<ul>
</div>
<div>
</div>
</div>
' ; >?
它包含在我的index.php文件中:
<!DOCTYPE html>
<html lang="en">
<head>
<?php include ('/includes/header.php'); ?>
<title>Home - Test</title>
</head>
<body id="homepage">
<?php $page = 'home'; include ('/includes/top.php') ;?>
</body>
</html>
您已经在PHP中,因此您不需要<?php echo
。 应该只是:
<?php
echo '
<div class="top-nav-bg">
<div class="top-nav container">
<div class="row">
<div class="top-nav sixteen columns">
<ul>
<li><a '.($page == 'home') ? 'class="active"' : ''.' href="/index.php">Home</a></li>
<li><a href="/about-us/">About Us</a></li>
<li><a href="/our-services/">Our Services</a></li>
<li><a href="/products/">Products</a></li>
<li><a href="/contact-us/">Contact Us</a></li>
<ul>
</div>
<div>
</div>
</div>
' ;
?>
没有代表对此发表评论,因此予以答复。
您只输出一个变量,因此您不需要在php中包含所有html。 另外,通过删除它,您将不必担心带'
或"
。另外,如果您使用的是不错的IDE /编辑器,则可以更好地突出显示语法。
您可以通过以下更干净的方法进行操作:
<div class="top-nav-bg">
<div class="top-nav container">
<div class="row">
<div class="top-nav sixteen columns">
<ul>
<li><a <?= ($page === 'home') ? 'class="active"' : ''; ?> href="/index.php">Home</a></li>
<li><a href="/about-us/">About Us</a></li>
<li><a href="/our-services/">Our Services</a></li>
<li><a href="/products/">Products</a></li>
<li><a href="/contact-us/">Contact Us</a></li>
<ul>
</div>
<div>
</div>
</div>
注意使用<?=
,这是<?php echo
简写。 只有php 5.4+会接受它们,因此如果不确定不确定是否使用,请使用<?php echo
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.