1

構築中の Web サイトの PHP を学習しようとしています。CSS ではnav a.thispage、ナビゲーションの「ボタン」をハイライトと同じ色にするためのクラス、セットアップがあります。美しく機能します。しかし、ページを追加していくと、サイトのすべての HTML ファイルを何度も何度も更新しなければならないことがわかりました。PHP がこれを自動化するのに役立つことがわかりました。これを行うには、HTML で次の PHP を使用します。

 <?php include 'content/header.php';?>

header.php ファイルの内容は次のとおりです。

<header>
  <h1><img id="headerimage" src="Images/GrandLodge.png"/>Lodge</h1>
  <nav>
    <ul>
      <li><a href="index.php">Home</a></li>
      <li><a href="events.php">Events</a></li>
      <li><a href="social.php">Social</a></li>
      <li><a href="about.php">About</a></li>
      <li><a href="contact.php">Contact</a></li>
      <li><a href="gamestores.php">Area Game Stores</a></li>
      <li><a href="http://someaddress" target="_blank">PFS</a></li>
    </ul>
  </nav>
</header>

今、私はこのメソッドを使用してclass="thispage"いるため、タグに を設定することはできません。PHPでクラスを動的に設定する方法はありますか? もしそうなら、html をロードしているページが実際にそれを必要とするページであるかどうかをどのように判断すればよいですか? これを処理する正しい方法でも PHP を使用していますか、それとも JavaScript を使用する必要がありますか?

私はこれがたくさんあることを知っており、私が行ったことの多くを実際に提供したわけではありませんが、これのために何をする必要があるかを実際に理解していないようです. 私が本当に必要としているのは、完全なコード サンプルではなく、正しい方向へのポイントです。

ご協力いただきありがとうございます。

4

3 に答える 3

1

PHP が役立つようにするには、ループ内でナビゲーションを生成する必要があります。次のようなもの:

<?php 
    $menu = array(
        'Home'   => 'index.php',
        'Events' => 'events.php',
        'Social' => 'social.php',
        'About'  => 'about.php'
    );
?>

<?php foreach ($menu as $name => $href) : ?>
    <?php $class_name = basename(__FILE__) === $href ? 'thispage' : ''; ?>
    <li><a href="<?php echo $href; ?>" class="<?php echo $class_name; ?>"><?php echo $name; ?></a></li>
<?php endforeach; ?>
于 2013-09-19T11:25:34.267 に答える
1

PHP と JavaScript を少し使用して、これを処理できます。

<header>
   <h1><img id="headerimage" src="Images/GrandLodge.png"/>Lodge</h1>
   <nav>
     <ul>
       <li><a id="aHome" href="index.php">Home</a></li>
       <li><a id="aEvents" href="events.php">Events</a></li>
       <li><a id="aSocial" href="social.php">Social</a></li>
       <li><a id="aAbout" href="about.php">About</a></li>
       <li><a id="aContact" href="contact.php">Contact</a></li>
       <li><a id="aGame" href="gamestores.php">Area Game Stores</a></li>
       <li><a id="aPFS" href="http://someaddress" target="_blank">PFS</a></li>
     </ul>
   </nav>
 </header>

ここで、訪問者が About ページに到達したとします。それを確認し、タグにクラス名を設定するコードは次のようになります。

 <?php
    if ($_SERVER['SCRIPT_NAME'] == '/about.php') { 
 ?>
 <script type="text/javascript">
   document.getElementById("aAbout").className = 'thispage';
 </script>
 <?php
   }
 ?>

それを試して、私に知らせてください。

于 2013-09-19T11:33:00.880 に答える