我正在尝试通过下拉列表显示正在同班的学生。但是使用我当前的代码,所有类的下拉内容都是相同的。
我从以下几行代码开始:
// Get all the classnames
$aAllClasses = $this->fetchAllClasses();
// Create a menubutton foreach classname
foreach($aAllClasses as $aClassname){
echo("<a class='link dropdown-toggle' href='#' id='navbarDropdown' role='button' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>".$aClassname[0]." </a>");
// Create the list with students for this class
echo("<ul class='dropdown-menu' aria-labelledby='navbarDropdown'>");
// Get all the students from this class
$aClassStudents = $this->fetchClassStudents($aClassname[0]);
// Create the dropdown list
foreach($aClassStudents as $aStudentRecord){
echo("<li><a class='dropdown-item' href='student.php' data-toggle='tooltip' title='Edit'>".$aStudentRecord['sStudentSurname']."</a></li>");
}
echo("</ul><br>");
}
根据此答案 Bootstrap Dropdown shows double? Weird One
我改变了
href='#' into href='javascript:void();'
什么都没有改变。 然后我在W3schools看到了这段代码https://www.w3schools.com/bootstrap4/bootstrap_dropdowns.asp
也没有快乐
在此网站的基础上,我更改了标签ID的 https://www.quackit.com/html/html_editors/scratchpad/?example=/bootstrap/bootstrap_4/tutorial/bootstrap_4_navbars_dropdown_menus
id='#Dropdown".$aClassname[0]."'
aria-labelledby='Dropdown".$aClassname[0]."'
新代码:
// Get all the classnames
$aAllClasses = $this->fetchAllClasses();
// Create a menubutton foreach classname
foreach($aAllClasses as $aClassname){
echo("<a class='link dropdown-toggle' href='#' id='#Dropdown".$aClassname[0]."' role='button' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>".$aClassname[0]." </a>");
// Create the list with students for this class
echo("<ul class='dropdown-menu' aria-labelledby='Dropdown".$aClassname[0]."'>");
// Get all the students from this class
$aClassStudents = $this->fetchClassStudents($aClassname[0]);
// Create the dropdown list
foreach($aClassStudents as $aStudentRecord){
echo("<li><a class='dropdown-item' href='student.php' data-toggle='tooltip' title='Edit'>".$aStudentRecord['sStudentSurname']."</a></li>");
}
echo("</ul><br>");
}
结果也一样。
如果我在最后一行中删除了“ end unordend list”,则将以嵌套的方式查看班级和学生。
所以现在我将按钮与内容分开了
$aAllClasses = $this->fetchAllClasses();
foreach($aAllClasses as $aClassname){
echo("<a class='link dropdown-toggle' href='#' id='#navbarDropdown".$aClassname[0]."' role='button' data-toggle='dropdown' aria-haspopup='true' aria-expanded='false'>".$aClassname[0]."</a><br><br>");
}
foreach($aAllClasses as $aClassname){
echo("<ul class='dropdown-menu' aria-labelledby='#navbarDropdown".$aClassname[0]."'>");
$aClassStudents = $this->fetchClassStudents($aClassname[0]);
foreach($aClassStudents as $aStudentRecord){
echo("<li><a class='dropdown-item' href='exa_classes.php' data-toggle='tooltip' title='Edit'>".$aStudentRecord['sStudentSurname']."</a></li>");
}
echo("</ul>");
}
相同的结果,第二类的内容仍然与第一类相同。 现在我用尽了主意。 有人可以告诉我为什么我不能为每个班级的下拉菜单填充不同的内容吗?