如何在下拉列表PHP MySQL中设置所选项目

时间:2012-04-29 11:33:06

标签: php mysql drop-down-menu

我有一个表bus,其中包含bus_id, bus_no列。

我尝试使用多重选择回显多个,我尝试了以下代码,但重复了bus_no

请帮助我回复所有公共汽车,并在所选公共汽车旁边回显selected

<form name="editstudent" method="get" action="testmulti.php">
<select name="numBus[]" multiple>

<?php
$selBus=mysql_query("SELECT * FROM najdsy_bus order by bus_id");
while ($rowBus=mysql_fetch_array($selBus)) {
    foreach ($numBus as $key=> $value) {
        if ($rowBus['bus_id']==$value) {
            $SelectedBus = "selected";
        } else {
            $SelectedBus = "";
        }
        echo '<option value="'.$rowBus['bus_id'].'"'.$SelectedBus.'>'.$rowBus['bus_no'].' '.$SelectedBus.'</option>';
    }
}
?>
</select>
<br/>
<input type="submit" value="test">
</form>

2 个答案:

答案 0 :(得分:2)

$rowBus[bus_no]替换为$rowBus['bus_no'],将$rowBus[bus_id]替换为$rowBus['bus_id']

这种变化的原因是$ rowBus是一个结构如此Array ([bus_id] => value)的数组。当你看到它的键是一个字符串,所以要访问它你必须“告诉”php寻找它。

字符串可以在"some_string"'some_string'中表示。由于密钥是一些没有任何特殊格式的文本以获得更好的性能,因此建议您使用'代替"

答案 1 :(得分:1)

您似乎不应将echo '<option value="'...放在foreach内。将其更改为:

while ($rowBus=mysql_fetch_array($selBus)) {
  $SelectedBus="";
  foreach ($numBus as $key => $value){
    if ($rowBus["bus_id"]==$value){
      $SelectedBus="selected";
    }
  }
  echo '<option value="'.$rowBus["bus_id"].'"'.$SelectedBus.'>'
     .$rowBus["bus_no"].' '.$SelectedBus.'</option>';
}