Я пытаюсь показать в выпадающем списке учеников, которые преподают в один и тот же класс. Но с моим текущим кодом содержимое выпадающего списка для всех классов одинаково.
Я начал с этих строк кода:
// 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 показывает двойной? Странный Один
Я изменился
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>");
}
Также тот же результат.
если я удаляю «конец списка неупорядоченных» в последней строке, просматриваются и классы, и ученики, но вложенным способом.
![Result part 1](https://i.stack.imgur.com/sl6sv.png)
![Result part 2](https://i.stack.imgur.com/PwRwl.png)
![Result,part 3](https://i.stack.imgur.com/6fkdw.png)
Так что теперь я отделил кнопки от контента
$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>");
}
Тот же результат, содержание второго класса остается таким же, как первый.
И теперь у меня заканчиваются идеи.
Может кто-нибудь сказать мне, почему я не могу заполнить эти выпадающие страницы различным содержанием для каждого класса?