使用PHP的活动导航栏?
我正在尝试使用PHP创建一个活动的导航栏,其中当前页面将在导航栏中高亮显示或着色。我使用的代码是:使用PHP的活动导航栏?,php,html,css,Php,Html,Css,我正在尝试使用PHP创建一个活动的导航栏,其中当前页面将在导航栏中高亮显示或着色。我使用的代码是: <ul class="topmenu"> <li <?php if($_GET['page']="home") { ?> class="active" <?php } ?>> <a href="home.php"><b>Bienvenue</b></a> </li> &l
<ul class="topmenu">
<li <?php if($_GET['page']="home") { ?> class="active" <?php } ?>>
<a href="home.php"><b>Bienvenue</b></a>
</li>
<li <?php if($_GET['page']="livres") { ?> class="active" <?php } ?>>
<a href="livres.php"><b>Livres</b></a>
</li>
<li <?php if($_GET['page']="bibliotheque") { ?> class="active" <?php } ?>>
<a href="bibliotheque.php"><b>Bibliothèque</b></a>
</li>
<li <?php if($_GET['page']="universite") { ?> class="active" <?php } ?>>
<a href="universite.php"><b>L'université</b></a>
</li>
<li <?php if($_GET['page']="contact") { ?> class="active" <?php } ?>>
<a href=""><b>Contact</b></a>
</li>
</ul>
如果页面是导航栏中的当前页面,则代码会将属性放入活动类中。但是,在这种情况下,所有属性都将被赋予活动类。我该如何解决这个问题
p.S:我不是在寻找任何JS或jQuery的替代方案,我只是在尝试仅使用PHP来实现这一点。我不使用PHP,但为当前页面提供活动标记,并根据每个文件进行更改。然后CSS中的单个类定义处理更改每个页面的颜色 HTML:
我不使用PHP,但为当前页面提供活动标记,并根据每个文件进行更改。然后CSS中的单个类定义处理更改每个页面的颜色 HTML:
您可以使用$\u服务器['SCRIPT\u NAME']
<ul class="topmenu">
<li <?php if($_SERVER['SCRIPT_NAME']=="/home.php") { ?> class="active" <?php } ?>><a href="home.php"><b>Bienvenue</b></a></li>
<li <?php if($_SERVER['SCRIPT_NAME']=="/livres.php") { ?> class="active" <?php } ?>><a href="livres.php"><b>Livres</b></a></li>
<li <?php if($_SERVER['SCRIPT_NAME']=="/bibliotheque.php") { ?> class="active" <?php } ?>><a href="bibliotheque.php"><b>Bibliothèque</b></a></li>
<li <?php if($_SERVER['SCRIPT_NAME']=="/universite.php") { ?> class="active" <?php } ?>><a href="universite.php"><b>L'université</b></a></li>
<li <?php if($_SERVER['SCRIPT_NAME']=="/contact.php") { ?> class="active" <?php } ?>><a href="contact.php"><b>Contact</b></a></li>
</ul>
您可以使用$\u服务器['SCRIPT\u NAME']
<ul class="topmenu">
<li <?php if($_SERVER['SCRIPT_NAME']=="/home.php") { ?> class="active" <?php } ?>><a href="home.php"><b>Bienvenue</b></a></li>
<li <?php if($_SERVER['SCRIPT_NAME']=="/livres.php") { ?> class="active" <?php } ?>><a href="livres.php"><b>Livres</b></a></li>
<li <?php if($_SERVER['SCRIPT_NAME']=="/bibliotheque.php") { ?> class="active" <?php } ?>><a href="bibliotheque.php"><b>Bibliothèque</b></a></li>
<li <?php if($_SERVER['SCRIPT_NAME']=="/universite.php") { ?> class="active" <?php } ?>><a href="universite.php"><b>L'université</b></a></li>
<li <?php if($_SERVER['SCRIPT_NAME']=="/contact.php") { ?> class="active" <?php } ?>><a href="contact.php"><b>Contact</b></a></li>
</ul>
在每个页面的顶部声明页面变量
示例:
对于导航栏中的每个列表项,添加带有相应变量和活动类的if语句
示例:我正在使用bootstrap4类。我已经实现了像这样的主动选课
<li class="nav-item">
<a
<?php if ($_SERVER['SCRIPT_NAME'] == "/somepath/yourfile1.php") { ?>
class="nav-link active"
<?php } else { ?>
class="nav-link"
<?php } ?>
href="yourfile1.php">Home
</a>
</li>
<li class="nav-item">
<a
<?php if ($_SERVER['SCRIPT_NAME'] == "/somepath/yourfile2.php") { ?>
class="nav-link active"
<?php } else { ?>
class="nav-link"
<?php } ?>
href="yourfile2.php">Home
</a>
</li>
对其他li标记重复此逻辑。希望这对其他人有所帮助。我正在使用bootstrap 4类。我已经实现了像这样的主动选课
<li class="nav-item">
<a
<?php if ($_SERVER['SCRIPT_NAME'] == "/somepath/yourfile1.php") { ?>
class="nav-link active"
<?php } else { ?>
class="nav-link"
<?php } ?>
href="yourfile1.php">Home
</a>
</li>
<li class="nav-item">
<a
<?php if ($_SERVER['SCRIPT_NAME'] == "/somepath/yourfile2.php") { ?>
class="nav-link active"
<?php } else { ?>
class="nav-link"
<?php } ?>
href="yourfile2.php">Home
</a>
</li>
对其他li标记重复此逻辑。希望这对其他人有所帮助。我同意这是一种方法,但我正在尝试让这种PHP方法工作,因为它是自动的,不需要创建太多的类。很公平,我想我会建议这样做,因为它仍然允许由CSS中的单个类来管理。祝你好运这是一种方法,我同意,但我正试图让这种PHP方法工作,因为它是自动的,不需要创建太多的类。很公平,我想我会建议它,因为它仍然允许由CSS中的单个类来管理。祝你好运同样的问题,我也尝试使用$服务器['CURRENT\u URI']。但它总是给出类的所有属性。从逻辑上讲,代码应该可以工作,但知道它不工作才是真正的困难。啊!我明白了。那是因为我们很愚蠢。我们正在检查脚本名称是否可以设置为'whater.php',而不是'whater.php'。==你是天才,先生。它按预期运行。我还注意到我必须在页面顶部添加if($\u SERVER['SCRIPT\u NAME']=“/pagename.php”)
,才能使它正常工作。我还注意到我必须在当前所在的页面中使用一个=。如果我在所有属性中使用==它将不起作用。同样的问题,我还尝试使用$\u SERVER['CURRENT\u URI']。但它总是给出类的所有属性。从逻辑上讲,代码应该可以工作,但知道它不工作才是真正的困难。啊!我明白了。那是因为我们很愚蠢。我们正在检查脚本名称是否可以设置为'whater.php',而不是'whater.php'。==你是天才,先生。它按预期运行。我还注意到我必须在页面顶部添加if($\u SERVER['SCRIPT\u NAME']=“/pagename.php”)
,才能使它正常工作。我还注意到我必须在当前所在的页面中使用一个=。如果我在所有属性中使用==它将不起作用。如果我使用此方法,是否意味着在每个页面的每个If中都将返回true?因为变量将被指定为“home”,并且对于每个if都是真的。我理解错了吗?它只会在li中返回true,您分配的页面变量与if语句中的匹配。如果您在livres页面上,您将在php的顶部使用
编写代码。在BiblioRequest页面上,
应位于顶部。你的导航条应该是,如果我使用这个方法,这不意味着在每个页面的每个If中都会返回true吗?因为变量将被指定为“home”,并且对于每个if都是真的。我理解错了吗?它只会在li中返回true,您分配的页面变量与if语句中的匹配。如果您在livres页面上,您将在php的顶部使用
编写代码。在BiblioRequest页面上,
应位于顶部。您的导航栏应该是