首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将class="act-link“添加到活动页- PHP或JS

问将class="act-link“添加到活动页- PHP或JS
EN

Stack Overflow用户
提问于 2019-02-09 18:15:29
回答 2查看 128关注 0票数 0

我在HTML页面中有简单的代码:

代码语言:javascript
复制
<?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文件

代码语言:javascript
复制
$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在正确的过程中解决了这个问题,那么编写它。谢谢大家

EN

回答 2

Stack Overflow用户

发布于 2019-02-09 18:35:19

我会用JavaScript重新分配它:

代码语言: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文件中:

代码语言:javascript
复制
$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
EN

Stack Overflow用户

发布于 2019-02-09 22:11:38

(PHP 4,PHP 5,PHP 7) basename -返回path的尾部名称组件

始终

代码语言:javascript
复制
basename($_SERVER['PHP_SELF'])

返回上次斜杠后的路径/

删除basename函数并在开关中添加/在成员大小写之前添加

代码语言:javascript
复制
basename() 

解决问题

配置文件:

代码语言:javascript
复制
$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;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54609183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档