使用PHP PDO和Bootstrap 4可以构建一个多级下拉导航栏。下面是一个完整的示例代码:
<?php
// 连接数据库
$servername = "数据库服务器地址";
$username = "用户名";
$password = "密码";
$dbname = "数据库名";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// 设置PDO错误模式为异常
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo "数据库连接失败: " . $e->getMessage();
exit();
}
// 查询顶级导航菜单
$sql = "SELECT * FROM nav_menus WHERE parent_id = 0";
$topNavMenus = $conn->query($sql)->fetchAll(PDO::FETCH_ASSOC);
// 输出顶级导航菜单和对应的子菜单
foreach ($topNavMenus as $topNavMenu) {
echo '<li class="nav-item dropdown">';
echo '<a class="nav-link dropdown-toggle" href="#" id="navMenu' . $topNavMenu['id'] . '" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">' . $topNavMenu['name'] . '</a>';
echo '<div class="dropdown-menu" aria-labelledby="navMenu' . $topNavMenu['id'] . '">';
// 查询子菜单
$sql = "SELECT * FROM nav_menus WHERE parent_id = " . $topNavMenu['id'];
$subNavMenus = $conn->query($sql)->fetchAll(PDO::FETCH_ASSOC);
// 输出子菜单
foreach ($subNavMenus as $subNavMenu) {
echo '<a class="dropdown-item" href="' . $subNavMenu['url'] . '">' . $subNavMenu['name'] . '</a>';
}
echo '</div>';
echo '</li>';
}
// 关闭数据库连接
$conn = null;
?>
在上面的示例代码中,我们首先使用PHP PDO连接到数据库,并查询顶级导航菜单。然后通过循环输出顶级导航菜单和对应的子菜单。最后关闭数据库连接。
这个示例中涉及到的数据库表结构可以参考以下示例:
CREATE TABLE `nav_menus` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`url` varchar(255) NOT NULL,
`parent_id` int(11) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
这个示例中的多级下拉导航栏使用了Bootstrap 4的dropdown
组件实现。可以根据实际需求进行样式的调整和功能的扩展。
推荐腾讯云相关产品:腾讯云服务器(https://cloud.tencent.com/product/cvm)和腾讯云数据库MySQL版(https://cloud.tencent.com/product/cdb_mysql)。这些产品可以帮助您在云上部署和管理您的PHP应用,并提供高性能和可靠的云服务。
请注意,以上是一个示例答案,实际情况下可能因为业务需求、系统环境等因素有所不同,具体实现需要根据实际情况进行调整。
领取专属 10元无门槛券
手把手带您无忧上云