0

ユーザーが「ページ」のドロップダウンメニューに含まれているページのいずれかにいるかどうかを検出できるようにするには、「ページ」リンクが必要です。それらが 1 ページだけにあるかどうかを検出するのは簡単です。「ページ」項目に複数のインスタンスを追加する必要があります。うまくいけば、それはもう少し理にかなっています。

これが私が持っているものです:

<li class='dropdown' id="menu1">
  <a class="dropdown-toggle" data-toggle="dropdown" href="#menu1">Pages</a>
    <ul class="dropdown-menu">
      <li>
        <a href="index.php">Home</a>
      </li>
      <li>
        <a href="about.php">About</a>
      </li>
    </ul>
</li>

JUST index.php のコードは次のようになります。

<li <?php if (stripos($_SERVER['REQUEST_URI'],'index.php') !== false) {echo 'class="active"';} ?>>
    <a href="index.php">Home</a>
</li>

前に言ったように、基本的に 1 つの PHP ブロックに複数のインスタンスを追加して、ユーザーが[ファイル名] .phpだけであるかどうかを検出する必要があります。

うまくいけば、これは理にかなっています。

4

2 に答える 2

0

最初にページ名だけを抽出する必要があり、次にそれを可能なページの配列と比較する必要があります。

<?php if (in_array(preg_replace('|.*/(.+\.php).*|i','\\1',$_SERVER['REQUEST_URI']), array('index.php','about.php'))) {echo 'class="active"';}
于 2012-07-04T15:34:27.983 に答える
0

リスト項目を配列に入れる必要があります。そして、それらをループしてメニューを作成します。

$pages = array(
    'Home' => 'home.php',
    'About' => 'about.php'
);

<?php foreach ($pages as $name => $url): ?>
    <li <?php if (stripos($_SERVER['REQUEST_URI'], $url) !== false):
        echo 'class="active"';
    endif ?>>
        <a href="<?php echo $url?>"><?php echo $name?></a>
    </li>
<?php endforeach ?>

これにより、配列内の各結果がチェックされ、URI と一致するかどうかが確認されます。その場合、アクティブなクラスが li に追加されます。

于 2012-07-04T15:43:50.713 に答える