php - mysql中页面id的事件菜单

标签 php mysql css menu

我对这个有点困惑。我正在尝试根据页面 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/

相关文章:

php - 当我们在php中从数据库中获取大量数据时显示空白数据?

javascript - Toggle 不适用于我的 jQuery

html - 固定宽度的内容,无论是否存在滚动条

javascript - CSS、HTML 和 Javascript : "loading..." spinner doesn't work with link onClick

php - 更改PHP error_log行为可能吗?

php - mysql_connect 警告,数据库主机问题

php - 如何在数据库中存储最近的搜索?

mysql - Select查询的效率

MySQL - 自动递增 10

mysql将数据从一个模式插入到另一个模式