私はこれに少し混乱しました。ページIDに基づいてメニューをアクティブにしようとしています。現時点では、メニューをプルして表示することはできますが、メニューで現在のページをアクティブにすることはできません。
これが私のデータベース設定です:
CREATE TABLE IF NOT EXISTS `pages` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`pagetitle` varchar(255) NOT NULL,
`linklabel` varchar(255) NOT NULL,
`pagebody` text NOT NULL,
`pageorder` int(11) NOT NULL,
`showing` enum('0','1') NOT NULL DEFAULT '1',
`keywords` varchar(255) NOT NULL,
`descriptions` varchar(255) NOT NULL,
`creationdate` datetime NOT NULL,
`lastmodified` datetime NOT NULL,
`extra` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ;
現時点での私のメニュー表示は次のとおりです。
// Build Main Navigation menu and gather page data here
$sqlCommand = "SELECT id, linklabel FROM pages WHERE showing='1' ORDER BY id ASC";
$query = mysqli_query($myConnection, $sqlCommand) or die (mysqli_error());
$menuDisplay = '';
while ($row = mysqli_fetch_array($query))
{
$pid = $row["id"];
$linklabel = $row["linklabel"];
$menuDisplay .= '<ul><li><a href="index.php?pid='.$pid.'">'.$linklabel.'</a></li></ul>';
}
mysqli_free_result($query);
ページの本文に、このように$menuDisplayをエコーします
<div id="nav"><?php echo $menuDisplay ?></div><!--ends nav-->
私は自分のCSSについてはあまり行っていませんが、これまでのところセットアップは次のとおりです。
/*NAVIGATION*/
#nav ul {
list-style: none;
margin: 0px;
padding: 0px;
}
#nav li {
border-bottom: 1px solid #bbb;
}
#nav li a:link, #nav li a:visited {
display: block;
padding: 5px 5px 5px 12px;
background-color: #ddd;
color: #555;
text-decoration: none;
}
#nav li a:active, #nav li a:hover {
background-color: #444;
color: #fff;
}