11

動的ヘッダー、CSSクラスをアクティブに変更USING PHP(ディレクトリ)

アクティブなディレクトリの下でタグのクラス<li>を変更したい...今、すべてのガイドはあなたのページがそれに等しいときにそれを行う方法を教えてくれますが、<li>どのディレクトリにあるかに応じて変更したいです

例えば:


http://example.com/RESOURCES/code/opensource
または
http://example.com/RESOURCES/images/clipartでimと言った場合
、「RESOURCES」^^<li>を「class="active」」にします。残りの部分は「class="noactive"」を表示 します。

または、
http:
//example.com/tutorials/css/flawless-dropdown-menuにある場合は、「tutorials」<li>を「class = "active"」にし、残りの部分は「class="active」」にします。 'class = "noactive"'


URL設定:

これは私のURLがどのように表示されるかの私の例です...

http://example.com/tutorials/css/flawless-dropdown-menu

^^そのURLはチュートリアルのページです....「tutorials」ディレクトリの下、「CSS」カテゴリディレクトリの下、ページタイトルよりも(これらのディレクトリはすべて実際のものではなく、.htaccessから書き換えられています)[無関係]


ナビゲーション設定:

<ul id="mainnav">
  <li class="noactive"><a href="/">Home</a></li>
  <li class="active"><a href="/tutorials/">Tutorials</a></li>
  <li class="noactive"><a href="/resources/">Resources</a></li>
  <li class="noactive"><a href="/library/">Library</a></li>
  <li class="noactive"><a href="/our-projects/">Our Projects</a></li>
  <li class="noactive"><a href="/community/">Community</a></li>
</ul>
4

11 に答える 11

24

答えを理解しました...私はそれを考えすぎていました。

HTML

<ul id="mainnav">
    <li class="<?php if ($first_part=="") {echo "active"; } else  {echo "noactive";}?>"><a href="#">Home</a></li>
    <li class="<?php if ($first_part=="tutorials") {echo "active"; } else  {echo "noactive";}?>"><a href="#">Tutorials</a></li>
    <li class="<?php if ($first_part=="resources") {echo "active"; } else  {echo "noactive";}?>"><a href="#">Resources</a></li>
    <li class="<?php if ($first_part=="library") {echo "active"; } else  {echo "noactive";}?>"><a href="#">Library</a></li>
    <li class="<?php if ($first_part=="our-projects") {echo "active"; } else  {echo "noactive";}?>"><a href="#">Our Projects</a></li>
    <li class="<?php if ($first_part=="community") {echo "active"; } else  {echo "noactive";}?>"><a href="#">Community</a></li>
</ul>

PHP

<?php 
$directoryURI = $_SERVER['REQUEST_URI'];
$path = parse_url($directoryURI, PHP_URL_PATH);
$components = explode('/', $path);
$first_part = $components[1];
?>
于 2012-11-12T03:33:59.277 に答える
21

header.php

$activePage = basename($_SERVER['PHP_SELF'], ".php");

nav.php

<ul>
    <li class="<?= ($activePage == 'index') ? 'active':''; ?>"><a href="/index.php">Home</a></li>
    <li class="<?= ($activePage == 'tutorials') ? 'active':''; ?>"><a href="/tutorials.php">Tutorials</a></li>
...
于 2015-06-30T18:47:43.147 に答える
7

PHPを介して試すことができます-

<?php 
// gets the current URI, remove the left / and then everything after the / on the right
$directory = explode('/',ltrim($_SERVER['REQUEST_URI'],'/'));

// loop through each directory, check against the known directories, and add class   
$directories = array("index", "tutorials","resources","library","our-projects","community"); // set home as 'index', but can be changed based of the home uri
foreach ($directories as $folder){
$active[$folder] = ($directory[0] == $folder)? "active":"noactive";
}
?>

<ul>
  <li class="<?php echo $active['index']?>"><a href="/">Home</a></li>
  <li class="<?php echo $active['tutorials']?>"><a href="/tutorials/">Tutorials</a></li>
  <li class="<?php echo $active['resources']?>"><a href="/resources/">Resources</a></li>
  <li class="<?php echo $active['library']?>"><a href="/library/">Library</a></li>
  <li class="<?php echo $active['our-projects']?>"><a href="/our-projects/">Our Projects</a></li>
  <li class="<?php echo $active['community']?>"><a href="/community/">Community</a></li>
</ul>
于 2012-11-11T23:18:07.423 に答える
3

多分これはあなたを助けます:

$(document).ready(function()
{
    var parts = document.URL.split("/");
    // [http:, empty, your domain, firstfolder]
    var firstFolder = parts[3];

    $("#mainnav li").attr("class", "noactive");
    $("#mainnav a[href='/" + firstFolder + "/']").parent().attr("class", "active");
});
于 2012-11-11T23:08:57.377 に答える
1

jQueryを使用する方がおそらく簡単ですが、これは機能します。

$url='http://example.com/tutorials/css/flawless-dropdown-menu';//pass the current url here instead of a static string.
$segments = explode ("/",$url);

$menuItems=array('Tutorials','Resources', 'Library', 'Our-Projects','Community');


$menu=array();
foreach ($menuItems as $menuItem) {
if($segments[3]==strtolower($menuItem)){
    $menu[]=('<li class="active"><a href="/'.strtolower($menuItem).'/">'.str_replace("-"," ",$menuItem).'</a></li>');

} else {
    $menu[]=('<li class="no-active"><a href="/'.strtolower($menuItem).'/">'.str_replace("-"," ",$menuItem).'</a></li>');
}
}
foreach ($menu as $item) {
echo $item.'<br />';
}
于 2012-11-11T23:11:28.390 に答える
1

mysql_fetchを使用する場合は、メニュータイトルの行を定義します。メニューのタイトルがmysqlデータベースのMENUであり、(Home、tutorials、library、resources、our-projects、community)を入力する必要がある場合

    <?php
//connect your data bass

 include(connection.php');

//get your from ID like www.google?id=1 

 $id = $_GET['id'];
    $query = "select * from pages where id='$id'";
    $query1 = mysql_query($query);
    while($row= mysql_fetch_array($query1))
    {
        ?>


<html>
<?php $active= $row['MENU'];?>
<ul>
  <li class="<?php if($active=='Home'){echo 'active';}else{echo'noactive';}?>"><a href="/">Home</a></li>
  <li class="<?php if($active=='tutorials'){echo 'active';}else{echo'noactive';}?>"><a href="/tutorials/">Tutorials</a></li>
  <li class="<?php if($active=='resources'){echo 'active';}else{echo'noactive';}?>"><a href="/resources/">Resources</a></li>
  <li class="<?php if($active=='library'){echo 'active';}else{echo'noactive';}?>"><a href="/library/">Library</a></li>
  <li class="<?php if($active=='our-projects'){echo 'active';}else{echo'noactive';}?>"><a href="/our-projects/">Our Projects</a></li>
  <li class="<?php if($active=='community'){echo 'active';}else{echo'noactive';}?>"><a href="/community/">Community</a></li>
</ul>
</html>
<?php };?>
于 2018-02-14T07:33:36.263 に答える
0

"includes/header.php"-これはファイルの先頭に表示されます

<?php 
$activePage = basename($_SERVER['PHP_SELF']);

$index="";
$nosotros="";
$cursos="";
$contacto="";

switch ($activePage) {
    case 'index.php':
        $index=' class="current"';
        break;
    case 'nosotros.php':
        $nosotros=' class="current"';
        break;
    case 'cursos.php':
        $cursos=' class="current"';
        break;
    case 'contacto.php':
        $contacto=' class="current"';
        break;
    default:

        break;
     }
?>

そしてこれはナビゲーションセクションに行きます

<ul>
    <?php 
        echo '<li'.$index.'><a href="/"><div>Inicio</div></a></li>';
        echo '<li'.$nosotros.'><a href="nosotros"><div>Nosotros</div></a></li>';
        echo '<li'.$cursos.'><a href="cursos"><div>Cursos</div></a></li>';
        echo '<li><a href="http://www.redtechacademy.com"><div>Academia</div></a></li>';
        echo '<li><a href="https://www.redtechhackingshop.com"><div>Tienda</div></a></li>';
        echo '<li'.$contacto.'><a href="contacto"><div>Contacto</div></a></li>';
    ?>
</ul>
于 2018-11-27T10:47:35.627 に答える
0
 Try the following:

<ul class="sub-menu"> 
   <div class="h-10"></div>
   <li class="<?php if ($your_variable=="test") {echo "active"; } 
     else{echo"noactive";}?>">
     <a href="test.php">Test </a>
   </li>
    <li class="<?php if ($your_variable=="test2") {echo "active"; 
      } else {echo"noactive";}?>">
     <a href="test2.php" >Test2</a>
    </li>
    <li class="<?php if ($your_variable=="test3") {echo 
     "active"; } else  {echo "noactive";}?>">
        <a href="test3.php">Test3</a>
    </li>
 </ul>

 **strong PHP text**

 <?php 
  $directoryURI = $_SERVER['REQUEST_URI'];
   $path = parse_url($directoryURI, PHP_URL_PATH);
   $components = explode('/', $path);
   $your_variable = basename($_SERVER['PHP_SELF'], ".php"); 
  ?> 
于 2019-06-14T07:30:36.207 に答える
0

ここでは、簡単なこともできます:

<li class="page-scroll <?php if(basename($_SERVER['PHP_SELF'])=="aboutus.php"){echo "active";} ?>"><a href="aboutus.php">About us</a></li>
于 2020-01-09T07:39:53.510 に答える
0

PHPを使用した別の見方は次のとおりです。

<ul class="navbar-nav">
    <?php
        // Defines all pages in navigation
        $pages = array(
            'Home'     => 'index.php',
            'Products' => 'products.php',
            'Services' => 'services.php',
            'Contact'  => 'contact.php',
            'About'    => 'about.php'
        );

        // Gets active page URL
        $active = basename($_SERVER['PHP_SELF']);
        
        // Loops through all pages
        foreach ($pages as $title => $url) {
            // Checks if active url is matched and adds active CSS class
            if ($active === $url) {
                echo '<li><a href="'.$url.'" class="nav-link active">'.$title.'</a></li>';
            } 
            // Prints out default style for remaining links
            else {
                echo '<li><a href="'.$url.'" class="nav-link">'.$title.'</a></li>';
            }
        }
    ?>
</ul>
于 2022-02-21T16:20:34.880 に答える
-1
<?php  $request_uri= $_SERVER['REQUEST_URI'];?>
<ul>
 <li class="<?php if((strpos($request_uri,"index.html")!==false) || $request_uri=="" || $request_uri=="/"){echo "selected";}?>"><a href="/index.html">Home</a></li>

                <li class="<?php if((strpos($request_uri,"service")!==false)){echo "selected";}?>"><a href="/services.html">Services</a> </li>
<li class="<?php if((strpos($request_uri,"product")!==false)){echo "selected";}?>"><a href="/products.html">Products</a></li>
                <li class="<?php if((strpos($request_uri,"blog")!==false)){echo "selected";}?>"><a href="/blog.html">Blog</a></li>
                <li class="<?php if((strpos($request_uri,"question")!==false)){echo "selected";}?>"><a href="/question-answers.html">Ques & Ans</a></li>
                <li class="<?php if((strpos($request_uri,"career")!==false)){echo "selected";}?>"><a href="/career.html">Career</a></li>
                <li class="<?php if((strpos($request_uri,"about-us")!==false)){echo "selected";}?>"><a href="/about-us.html">About</a></li>

</ul>
于 2014-10-10T07:02:58.533 に答える