在选择标签中仅显示一次选项

时间:2018-08-15 03:25:33

标签: javascript php jquery html css

我正在建立一个关于学生出勤管理的项目。我被困在一个功能上。在老师要标记上课的时间时,他/她必须填写有关班级详细信息和主题详细信息的表格。我只想向老师展示那些班级,这些班级的科目分配给了老师。类在选择框中列出。当一个班级的多个科目分配给一位老师时,就会出现问题。它在选择框中多次显示班级。我只想向每个班级展示一次。

这是我的选择框代码。

<div class="form-group">
  <label for="class_id" class="control-label col-sm-2">Select Class Id :</label>
 <div class="col-xs-10">
    <select class="form-control" name="class_id" id="class_id">
       <option selected="selected" value="">Select Class Id</option>                              
       <?php 
           $q="select * from subjects where teacher_id='$_SESSION[teacher]'";
           $res=mysqli_query($con,$q);
           while($row=mysqli_fetch_array($res)){
               echo "<option class='form-control'>".$row['class_id']." </option>";
          }
      ?>
   </select>
 </div>
</div>

2 个答案:

答案 0 :(得分:1)

在SQL查询中使用与众不同,以确保主题名称在选择标记中仅出现一次。

例如-

 SELECT DISTINCT class_id FROM subjects WHERE teacher_id='$_SESSION[teacher];

答案 1 :(得分:1)

这部分代码可能有问题。它可能返回重复的值。

$q="select * from subjects where teacher_id='$_SESSION[teacher]'";

您可以更改它以返回唯一的 class_id ,因为您仅使用 class_id

$q="select DISTINCT `class_id` from subjects where teacher_id='$_SESSION[teacher]'";

您必须相应地更改while循环。我不确定PHP。但您可能只在

中使用 $ row 而不是 $ row ['class_id']

 while($row=mysqli_fetch_array($res)){
               echo "<option class='form-control'>".$row['class_id']." </option>";
          }

干杯。