在下拉列表中显示mysql表中的数据

时间:2017-11-07 00:52:27

标签: javascript php jquery ajax mysqli

我正在尝试创建一个下拉菜单,它将显示来自mysql表的数据。但是我遇到了如下所示的问题:

我在我的php脚本中这样做

<label class="col-form-label" for="formGroupExampleInput2">Pilih Subjek</label>
<div class="drop-down-wrapper">
   <?php
   $sql = " SELECT * FROM subjek_ambil WHERE userid='$userid' ";
   $verifikasi = $conn->query($sql);
   $hitung = $verifikasi->num_rows;

   if($hitung){
   while($cetak=$verifikasi->fetch_assoc()){
   extract($cetak);
   echo ' 
    <select name="kod_s" required="true" class="form-control form-control-lg" id="selectsubject">
              <option value=""></option>
              <option value="'.$subjek1.'">     '.$subjek1.'    </option>
              <option value="'.$subjek2.'">     '.$subjek2.'    </option>
              <option value="'.$subjek3.'">     '.$subjek3.'    </option>
              <option value="'.$subjek4.'">     '.$subjek4.'    </option>
              <option value="'.$subjek5.'">     '.$subjek5.'    </option>
              <option value="'.$subjek6.'">     '.$subjek6.'    </option>
              <option value="'.$subjek7.'">     '.$subjek7.'    </option>
              <option value="'.$subjek8.'">     '.$subjek8.'    </option>
              <option value="'.$subjek9.'">     '.$subjek9.'    </option>
              <option value="'.$subjek10.'">    '.$subjek10.'   </option>
    </select>
            ';
            }

          }
        else{
        echo "";
        }
        ?>
</div>

这是我的subjek_ambil数据库表 Database Table for subjek_ambil.jpg

这是输出 - what is shown at the interface.jpg

我的问题是,

1)如何只显示非空的<option>

2)如何传递从下拉列表中获取的值,并显示从传递的值动态派生的数据表。

我的意思是,如果我从下拉菜单中选择LA1 : Asas Perisian Komputer作为值,则会显示包含查询$sql="SELECT * FROM fail WHERE kod_s = 'LA 1 : Asas Perisian Komputer' ORDER BY id_f DESC";的表格。

我希望动态kod_s = 'LA 1 : Asas Perisian Komputer'更改用户选择。

1 个答案:

答案 0 :(得分:3)

为什么要使用extract()?而是使用foreach循环,使用empty()检查每个值的空白。

while($cetak=$verifikasi->fetch_assoc()){
  echo '<select name="kod_s" required="true" class="form-control form-control-lg" id="selectsubject">';
  foreach($cetak as $val){
    if(!empty($val)){
      echo "<option value='$val'>$val</option>";
    }
  }
  echo '</select>';
}

您也可以使用... WHERE YourColumn IS NOT NULL;更改SQL查询,但由于数据库结构错误而不切实际。阅读可以在id上连接表格的设计模式。