0

如果值与数据库中的值相对应,我希望选择下拉列表中的项目。

到目前为止,这是我的代码...

$hardware_type = $row['type'];

//pull names from hardware types from databse
$sql = "SELECT * FROM s_num_serialz_types ORDER BY type ASC";
$result = $mysqli->query($sql) or die($mysqli->error.__LINE__);
$type_dropdown = '<select id="serial_type" class="accounts_input_dropdown" type="text" name="serial_type" selected="'.$_POST['serial_type'].'"/><option></option>';
while($row = mysqli_fetch_assoc($result)){
    if($row['type'] != $hardware_type){
    $type_dropdown .= "\r\n<option value='{$row['type']}'>{$row['type']}</option>";
    }else{
        $type_dropdown .= "\r\n<option value='{$row['type']} selected=\"selected\">{$row['type']}</option>";
    }
}
$type_dropdown .= "\r\n</select>";

我尝试了几种编写此代码的方法,但似乎都没有。我第一次尝试...

while($row = mysqli_fetch_assoc($result)){
    if($row['type'] == $hardware_type){
    $type_dropdown .= "\r\n<option value='{$row['type']} selected=\"selected\">{$row['type']}</option>";
    }else{
        $type_dropdown .= "\r\n<option value='{$row['type']}'>{$row['type']}</option>";
    }
}

这在列表中选择了正确的项目,但包含此列表的表单的其余部分不显示。

任何帮助将不胜感激

4

2 回答 2

0

value='{$row['type']}在您的第一次尝试(第二个代码示例)中缺少关闭单引号来关闭value属性值 - 这可能足以让浏览器在该元素之后退出呈现您的表单。

value='{$row['type']}'
于 2012-09-23T13:07:29.940 回答
0

你这里有错别字

<option value='{$row['type']}

错过了结束'。您还混合了单引号和双引号,这不是标准的最佳选择。

我可以建议你这个紧凑的版本:

while($row = mysqli_fetch_assoc($result)){
    $selected = ($row['type'] == $hardware_type) ? " selected='selected'" : '';
    $type_dropdown .= "\r\n<option value='{$row['type']}'$selected>{$row['type']}</option>";
}
于 2012-09-23T13:07:59.873 回答