gpt4 book ai didi

php - Bootstrap 下拉导航仅适用于动态导航中的当前页面

转载 作者:行者123 更新时间:2023-11-28 04:25:18 25 4
gpt4 key购买 nike

我在学习 PHP、SQL 等的同时建立了一个网站。我现在正在尝试在原始页面上构建我已经使每个标准导航都能正常工作,当我尝试添加 Bootstrap 导航栏时,下拉框仅出现在我当前所在的页面上。在 index.php 上,所有下拉菜单都不起作用。该页面在后端有一个 CMS,我试图让公共(public)端看起来更好,并确保无论数据库中有多少新页面或主题,CSS 都应用于所有内容。

如有任何帮助,我们将不胜感激!

红利问题:如果可能的话,我还希望仅当“主题”与其相关联的页面超过一页时才出现克拉,我也不知道如何使它起作用。例如:因此,当单击主题时,您会在单击时转到其唯一页面,但是如果页面超过 1 页,则会出现一个克拉,下拉菜单是您从中选择所需页面的地方

我的导航是一个函数并且工作正常它只是导致我最初问题的 css。

function public_navigation($subject_array, $page_array) {
$output = "<nav class=\"navbar navbar-default\">";
$output .= "<div class=\"container-fluid\">";
$output .= "<div class=\"navbar-header\">";
$output .= "<button type=\"button\" class=\"navbar-toggle\" data-toggle=\"collapse\" data-target=\"#myNavbar\">";
$output .= "<span class=\"icon-bar\"></span>";
$output .= "<span class=\"icon-bar\"></span>";
$output .= "<span class=\"icon-bar\"></span>";
$output .= "</button>";
$output .= "<a class=\"navbar-brand\" href=\"index.php\">Company</a>";
$output .= "</div>";
$output .= "<div class=\"collapse navbar-collapse\" id=\"myNavbar\">";
$output .= "<ul class=\"nav navbar-nav\">";
$subject_set = find_all_subjects();
while($subject = mysqli_fetch_assoc($subject_set)) {
$output .= "<li class=\"dropdown\">";
$output .= "<a class=\"dropdown-toggle\" data-toggle=\"dropdown\" href=\"index.php?subject=";
$output .= urlencode($subject["id"]);
$output .= "\">";
$output .= htmlentities($subject["menu_name"]);
$output .= "<span class=\"caret\"></span></a>";

if ($subject_array["id"] == $subject["id"] ||
$page_array["subject_id"] == $subject["id"]) {
$page_set = find_pages_for_subject($subject["id"]);
$output .= "<ul class=\"dropdown-menu\">";
while($page = mysqli_fetch_assoc($page_set)) {
$output .= "<li>";
$output .= "<a href=\"index.php?page=";
$output .= urlencode($page["id"]);
$output .= "\">";
$output .= htmlentities($page["menu_name"]);
$output .= "</a></li>";
}
$output .= "</ul>";
mysqli_free_result($page_set);
}

$output .= "</li>"; // end of the subject li
}
mysqli_free_result($subject_set);
$output .= "</ul></div></div></nav>";
return $output;
}

编辑:This is what the menu looks like

但是,如果您单击任何其他标题,则不会出现下拉框,并且如果在带有通用欢迎页面的 index.php 上,则没有任何菜单具有下拉框或让您导航到它们

最佳答案

如果不知道 $subject_array 和 $page_array 中传递的是什么,很难说出失败的原因,但几乎可以肯定问题出现在您的 if 语句中:

if ($subject_array["id"] == $subject["id"] || $page_array["subject_id"] == $subject["id"]) {

看起来您根本不需要 if 语句,因为您希望每次都获取给定主题的页面。所以我建议您尝试删除 if 并查看您得到的结果:

        $output .= "<span class=\"caret\"></span></a>";

$page_set = find_pages_for_subject($subject["id"]);
$output .= "<ul class=\"dropdown-menu\">";
while($page = mysqli_fetch_assoc($page_set)) {
$output .= "<li>";
$output .= "<a href=\"index.php?page=";
$output .= urlencode($page["id"]);
$output .= "\">";
$output .= htmlentities($page["menu_name"]);
$output .= "</a></li>";
}
$output .= "</ul>";
mysqli_free_result($page_set);

$output .= "</li>"; // end of the subject li

现在您将拥有每个主题的下拉菜单,您只需要一个小的 if 语句来添加一些额外的 CSS 类或其他内容以显示哪个主题是当前选定的主题。

关于php - Bootstrap 下拉导航仅适用于动态导航中的当前页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41998569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com