有没有办法通过引导程序获得多个下拉菜单?

时间:2019-03-23 20:24:22

标签: php dropdown

我正在尝试通过下拉列表显示正在同班的学生。但是使用我当前的代码,所有类的下拉内容都是相同的。

我从以下几行代码开始:

    // 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”,则将以嵌套的方式查看班级和学生。

Result part 1

Result part 2

Result,part 3

所以现在我将按钮与内容分开了

 $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>");     
   }

相同的结果,第二类的内容仍然与第一类相同。 现在我用尽了主意。 有人可以告诉我为什么我不能为每个班级的下拉菜单填充不同的内容吗?

0 个答案:

没有答案