4

$current_url = basename($_SERVER['PHP_SELF']);ナビゲーション (html) が php ファイルに保存され、すべてのページに含まれていることを考慮して、使用中のページを特定するために use を使用しようとしています。これは、アクティブにする必要があるナビゲーション オプションを決定するために使用するコードです。

<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/no-background.css">

<ul>
<?php
    $current_url = basename($_SERVER['PHP_SELF']);
    $active = "class=\"active\"";
?>
<?php if ($current_url == "globaluser.php") { ?>
    <li <?php echo $active;?> > <?php } ?> <a href="globaluser.php?Agent=<?php echo $Agent;?>">Overview</a></li>
<?php if ($current_url == "search.php") { ?>
    <li <?php echo $active;?> > <?php } ?> <a href="search.php?Agent=<?php echo $Agent?>">Add new client</a></li>
<?php if ($current_url == "viewadmins.php") { ?>
    <li <?php echo $active;?> > <?php } ?> <a href="viewadmins.php?Agent=<?php echo $Agent?>">View admins</a></li>
    <li class="border-right"><a href="emails.php?Agent=<?php echo $Agent?>">E-mails</a></li>
    <li class="right border-right"><a href="logout.php"><?php echo $Agent?></a>
        <ul class="drop1">
            <li><a href="earnings.php?Agent=<?php echo $Agent?>">Earnings</a></li>
            <li id="hover-trigger"><a href="#">Change Password</a>
                <ul class="drop2">
                    <li>
                        <form action="changepass.php?Agent=<?php echo $Agent?>" method="POST">
                            <input type="password" name="1" placeholder="Enter new password">
                            <input type="password" name="2" placeholder="Repeat new password">
                    </li>
                    <li>
                            <input type="submit" name="changepw" class="button" value="Change">
                        </form>
                    </li>
                </ul>
            </li>
        <li>
            <form action="logout.php">
                <input type="submit" class="button" value="Log out">
            </form>
        </li>
        </ul>
    </li>

しかし、うまくいきません。アクティブなページがアクティブとして表示されますが、2 つのページが単純なハイパーリンクとして表示されます。これは次のようになります。

ナビゲーション エラー

なぜこれが起こるのか、誰にも手がかりがありますか? 2 で動作しますが、2 で失敗します。まったく同じコードですか? ありがとう

4

3 に答える 3

0

preg_replace() を使用して追加することもできますclass="active"

ob_start();
echo '<ul>
  <li><a href="page1.php">Page 1</a></li>
  <li><a href="page2.php">Page 2</a></li>
  </ul>';
$output = ob_get_clean();
$pattern = '~<li><a href="'.$url.'">~';
$replacement = '<li class="active"><a href="'.$url.'">';
echo preg_replace($pattern, $replacement, $output);
于 2015-11-09T17:55:01.713 に答える