我在学习PHP,SQL等的同时建立了一个网站。
我现在正在尝试构建原始页面,我已经使用标准导航使每个工作正常,当我尝试添加引导程序导航栏时,下拉框仅出现在我当前正在使用的页面上。
在index.php
没有下拉列表工作。该页面的后端有一个CMS,我试图让侧面的公共端看起来更好,并确保无论数据库中有多少新页面或主题,css都应用于所有内容。
任何帮助将不胜感激!
红利问题:我也希望克拉只出现在"主题"有多个页面与之关联,如果可能的话,我也无法弄清楚如何做到这一点。例如:所以当点击主题时,你会在点击时转到它唯一的页面,但如果有超过1页,则会出现一个carrat,下拉菜单是你从
选择所需页面的地方我的导航是一个功能,只有导致我初始问题的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上,没有菜单有下拉框或让你导航到它们
答案 0 :(得分:0)
在不知道$ 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类或其他内容来显示哪个主题是当前选定的主题。