我让自己对此感到困惑。我正在尝试根据页面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;
}
答案 0 :(得分:0)
你应该能够在PHP中做这样的事情:
// 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 = '<ul>';
while ($row = mysqli_fetch_array($query)) {
$pid = $row["id"];
$linklabel = $row["linklabel"];
$menuDisplay .= '<li' . ($pid == $_GET["pid"] ? ' class="selected"' : '') . '><a href="index.php?pid=' . $pid . '">' . $linklabel . '</a></li>';
}
mysqli_free_result($query);
$menuDisplay .= '</ul>';
这会将class="selected"
添加到当前页面的<li>
。另外,请勿将每个<li>
放在自己的<ul>
中。我也解决了这个问题。