我正在尝试创建一个下拉菜单,它将显示来自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数据库表
这是输出 -
我的问题是,
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'
更改用户选择。
答案 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上连接表格的设计模式。