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']}最初の試行 (2 番目のコード サンプル) では、属性値を閉じるための一重引用符があり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 に答える