我对这个有点困惑。我正在尝试根据页面 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;
}
最佳答案
你应该能够在你的 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>
.我也解决了这个问题。
关于php - mysql中页面id的事件菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11921344/