我在HTML页面中有简单的代码:
<?php include("config.php"); ?>
<nav>
<ul>
<li><a href="<?php BASE_URL; ?>/index.php" class="<?php echo $Home; ?>">Home</a></li>
<li><a href="<?php BASE_MEMBERS; ?>/index.php" class="<?php echo $Users; ?>">Users</a></li>
<li><a href="<?php BASE_URL; ?>/contact.php" class="<?php echo $Contact; ?>">Contact</a></li>
</ul>
</nav>注意:(配置文件中的)
BASE_URL = <?php define('BASE_URL', 'http://localhost'); ?>
BASE_MEMBERS = <?php define('BASE_MEMBERS', BASE_URL . '/members/'); ?>
现在我需要什么?要将类act-link添加到active页面,我有一个解决方案,但在子文件夹上有一些问题。我将写一个例子:
注意:Config文件
$addClassActivePage = basename($_SERVER['PHP_SELF']);
$Home = "";
$Users = "";
$Contact = "";
swith($addClassActivePage) {
case "index.php":
$Home = "act-link";
break;
case "members/user.php":
$Users = "act-link";
break;
case "contact.php":
$Contact = "act-link";
break;
}问题在于子文件夹。它们在index.php和contact.php页面上显示contact.php,但在用户页面(子文件夹/page.php)上不显示。我认为问题是在定义路径或模拟。
如果JavaScript在正确的过程中解决了这个问题,那么编写它。谢谢大家
发布于 2019-02-09 18:35:19
我会用JavaScript重新分配它:
<?php include("config.php"); ?>
<nav>
<ul>
<li><a href="<?php BASE_URL; ?>/index.php" id="home">Home</a></li>
<li><a href="<?php BASE_MEMBERS; ?>/index.php" id="user">Users</a></li>
<li><a href="<?php BASE_URL; ?>/contact.php" id="contact">Contact</a></li>
</ul>
</nav>在Config文件中:
$addClassActivePage = basename($_SERVER['PHP_SELF']);
$Home = "";
$Users = "";
$Contact = "";
switch($addClassActivePage) {
case = "index.php":
echo '<script>document.getElementById("home").className = "act-link";</script>';
break;
case = "members/user.php":
echo '<script>document.getElementById("user").className = "act-link";</script>';
break;
case = "contact.php":
echo '<script>document.getElementById("contact").className = "act-link";</script>';
break;
}因此,您只需更改几行:class="<?php echo $Home; ?>"改为id="home"
$Home = "act-link";到echo '<script>document.getElementById("home").className = "act-link";</script>';
发布于 2019-02-09 22:11:38
(PHP 4,PHP 5,PHP 7) basename -返回path的尾部名称组件
始终
basename($_SERVER['PHP_SELF'])返回上次斜杠后的路径/
删除basename函数并在开关中添加/在成员大小写之前添加
basename() 解决问题
配置文件:
$addClassActivePage =$_SERVER['PHP_SELF'];
$Home = "";
$Users = "";
$Contact = "";
switch($addClassActivePage) {
case "index.php":
$Home = "act-link";
break;
case "/members/user.php": // add / before members
$Users = "act-link";
break;
case "contact.php":
$Contact = "act-link";
break;
}https://stackoverflow.com/questions/54609183
复制相似问题