Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / PHP

Dynamic Navigation Menus

4.18/5 (13 votes)
14 Apr 2010CPOL 1  
Next code demonstrates how to build a simple menu function with the current page high-lighted.index.phpPage - .inactive,...
Next code demonstrates how to build a simple menu function with the current page high-lighted.

index.php
XML
<?php
require_once('menu.php');
$page = isset($_GET['page']) ? $_GET['page'] : 'home';
?>
<html>
<head>
<title>Page - <?=$page?></title>
<style type="text/css">
.inactive, .active
{
 padding:2px 2px 2px 20px;
}
.inactive
{
 background:#ddd;
}
.active
{
 background:black;
 font-weight:bold;
}
.inactive a
{
 text-decoration:none;
}
.active a
{
 text-decoration:none;
 color:white;
}
</style>
</head>
<body>
<table>
<tr>
<td width="200" valign="top">
<?php page_menu($page); ?>
</td>
<td width="600" valign="top">
Page: <?=$page?>
</td>
</tr>
</table>
</body>
</html>


menu.php
<?php
function menu_item($id, $title, $current)
{
  $class = ($current == $id) ? "active" : "inactive";
?>
  <tr><td class=<?=$class?>>
  <a href="index.php?page=<?=$id?>"><?=$title?></a>
  </td></tr>
<?php
}
function page_menu($page)
{
?>
  <table width="100%">
  <?php menu_item('home', 'Home', $page); ?>
  <?php menu_item('about', 'About', $page); ?>
  <?php menu_item('browse', 'Browse', $page); ?>
  <?php menu_item('download', 'Download', $page); ?>
</table>
<?php
}
?>

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)