添加类=“行为链接”到活动页面 - PHP或JS

问题描述 投票:0回答:2

我在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添加到活动页面,我有1个解决方案,但我已经在子文件夹中的一些问题。我会写例如:

注:配置文件

$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;
}

问题是与子文件夹。它们显示act-link上的index.php和contact.php页,但用户页面(子文件夹/ p​​age.php文件)上不显示。我认为这个问题是在定义路径或simular。

如果JavaScript的解决这个上正确的方式,把它写。感谢所有

javascript php jquery
2个回答
0
投票

我会用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>

而在配置文件中:

$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>';


0
投票

(PHP 4,PHP 5,PHP 7)基名 - 返回后路径的名称成分

总是

basename($_SERVER['PHP_SELF'])

最后一个斜线后返回的路径/ 除去基名功能和添加/前在开关部件的情况下

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.