PHP Dynamic Navigation with Active Class

Apr 12, 2022 . Admin



Hello dev,

I am going to explain to you how to add a dynamic active class on a selected page in PHP. You will learn PHP dynamic navigation with an active class example.

This article will give you a simple example of how to add an active class dynamically in PHP. We will use get simple how to dynamically add active classes to nav with PHP.

I will give you a simple example of how to add an active class in a dynamic menu with PHP.

So, let's see bellow solution:

home.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>PHP Dynamic Navigation with Active Class - Mywebtuts.com</title>
    <!-- Bootstrap core CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <link href="https://fonts.googleapis.com/css2?family=Heebo&family=Mulish&display=swap" rel="stylesheet">
    
    <style type="text/css">
        body{
            font-family: 'Heebo', sans-serif;
        }
        .solo-main{
            background-color: #222222;
        }
        .solo-title{
            font-size: 29px;
        }
        .solo-nav ul li a{
            font-size: 14px;
            font-weight: bold;
            letter-spacing: 1px;
        }
        .solo-nav ul li a.active{
            background-color: #ff9800;
            color: white;
        }
        img{
            background-color: white;
            height: 45px;
        }   
    </style>
</head>
<body>
    <?php $activePage = basename($_SERVER['PHP_SELF'], ".php"); ?>

        <div class="container-fluid solo-main p-0">
            <div class="container p-0">
                <nav class="navbar navbar-expand-lg navbar-light p-0">
                    <a class="navbar-brand solo-title mb-0 text-light font-weight-bold" href="#"><img src="logo-1.png"></a>
                    <button class="navbar-toggler bg-info" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon"></span>
                    </button>

                    <div class="collapse navbar-collapse solo-nav" id="navbarSupportedContent">
                        <ul class="navbar-nav ms-auto">
                            <li class="nav-item">
                                <a class="nav-link text-light p-3 <?= ($activePage == 'home') ? 'active':''; ?>" href="home.php">HOME</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-light p-3 <?= ($activePage == 'blog') ? 'active':''; ?>" href="blog.php">BLOG</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-light p-3 <?= ($activePage == 'contact-us') ? 'active':''; ?>" href="contact-us.php">CONTACT US</a>
                            </li>
                        </ul>
                    </div>
                </nav>
            </div>  
        </div>
        <div class="container mt-5">
            <div class="row mt-5">
                <div class="col-md-12 text-center mt-5 pt-5">
                    <h1 class="display-1">Mywebtuts.com - Home</h1>
                </div>
            </div>
        </div>

    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384-+YQ4JLhjyBLPDQt//I+STsc9iw4uQqACwlvpslubQzn4u2UU2UFM80nGisd026JF" crossorigin="anonymous"></script>
</body>
</html>
blog.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>PHP Dynamic Navigation with Active Class - Mywebtuts.com</title>
    <!-- Bootstrap core CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <link href="https://fonts.googleapis.com/css2?family=Heebo&family=Mulish&display=swap" rel="stylesheet">
    
    <style type="text/css">
        body{
            font-family: 'Heebo', sans-serif;
        }
        .solo-main{
            background-color: #222222;
        }
        .solo-title{
            font-size: 29px;
        }
        .solo-nav ul li a{
            font-size: 14px;
            font-weight: bold;
            letter-spacing: 1px;
        }
        .solo-nav ul li a.active{
            background-color: #ff9800;
            color: white;
        }
        img{
            background-color: white;
            height: 45px;
        }
    </style>
</head>
<body>
    <?php $activePage = basename($_SERVER['PHP_SELF'], ".php"); ?>

        <div class="container-fluid solo-main p-0">
            <div class="container p-0">
                <nav class="navbar navbar-expand-lg navbar-light p-0">
                    <a class="navbar-brand solo-title mb-0 text-light font-weight-bold" href="#"><img src="logo-1.png"></a>
                    <button class="navbar-toggler bg-info" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon"></span>
                    </button>

                    <div class="collapse navbar-collapse solo-nav" id="navbarSupportedContent">
                        <ul class="navbar-nav ms-auto">
                            <li class="nav-item">
                                <a class="nav-link text-light p-3 <?= ($activePage == 'home') ? 'active':''; ?>" href="home.php">HOME</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-light p-3 <?= ($activePage == 'blog') ? 'active':''; ?>" href="blog.php">BLOG</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-light p-3 <?= ($activePage == 'contact-us') ? 'active':''; ?>" href="contact-us.php">CONTACT US</a>
                            </li>
                        </ul>
                    </div>
                </nav>
            </div>  
        </div>
        <div class="container mt-5">
            <div class="row mt-5">
                <div class="col-md-12 text-center mt-5 pt-5">
                    <h1 class="display-1">Mywebtuts.com - Blog</h1>
                </div>
            </div>
        </div>
    
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384-+YQ4JLhjyBLPDQt//I+STsc9iw4uQqACwlvpslubQzn4u2UU2UFM80nGisd026JF" crossorigin="anonymous"></script>
</body>
</html>
contact-us.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <title>PHP Dynamic Navigation with Active Class - Mywebtuts.com</title>
    <!-- Bootstrap core CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
    <link href="https://fonts.googleapis.com/css2?family=Heebo&family=Mulish&display=swap" rel="stylesheet">
    
    <style type="text/css">
        body{
            font-family: 'Heebo', sans-serif;
        }
        .solo-main{
            background-color: #222222;
        }
        .solo-title{
            font-size: 29px;
        }
        .solo-nav ul li a{
            font-size: 14px;
            font-weight: bold;
            letter-spacing: 1px;
        }
        .solo-nav ul li a.active{
            background-color: #ff9800;
            color: white;
        }
        img{
            background-color: white;
            height: 45px;
        }
    </style>
</head>
<body>
    <?php $activePage = basename($_SERVER['PHP_SELF'], ".php"); ?>

        <div class="container-fluid solo-main p-0">
            <div class="container p-0">
                <nav class="navbar navbar-expand-lg navbar-light p-0">
                    <a class="navbar-brand solo-title mb-0 text-light font-weight-bold" href="#"><img src="logo-1.png"></a>
                    <button class="navbar-toggler bg-info" type="button" data-toggle="collapse" data-target="#navbarSupportedContent"aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                        <span class="navbar-toggler-icon"></span>
                    </button>

                    <div class="collapse navbar-collapse solo-nav" id="navbarSupportedContent">
                        <ul class="navbar-nav ms-auto">
                            <li class="nav-item">
                                <a class="nav-link text-light p-3 <?= ($activePage == 'home') ? 'active':''; ?>" href="home.php">HOME</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-light p-3 <?= ($activePage == 'blog') ? 'active':''; ?>" href="blog.php">BLOG</a>
                            </li>
                            <li class="nav-item">
                                <a class="nav-link text-light p-3 <?= ($activePage == 'contact-us') ? 'active':''; ?>" href="contact-us.php">CONTACT US</a>
                            </li>
                        </ul>
                    </div>
                </nav>
            </div>  
        </div>
        <div class="container mt-5">
            <div class="row mt-5">
                <div class="col-md-12 text-center mt-5 pt-5">
                    <h1 class="display-1">Mywebtuts.com - Contact-us</h1>
                </div>
            </div>
        </div>
    
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384-+YQ4JLhjyBLPDQt//I+STsc9iw4uQqACwlvpslubQzn4u2UU2UFM80nGisd026JF" crossorigin="anonymous"></script>
</body>
</html>
Output:

It will help you...
#PHP