2011-07-28 16 views
0

データベースから値を選択してドロップダウンリストを作成するコードがあります。しかし、私の質問は、ユーザーが別のデータベースで選択した値を保存しておけば、その選択を元に戻して選択した選択肢をどのようにするかです。DropDownにデータを取り込み、データベースから選択値を取得

<select name="dropdown1" id="dropdown1"> 

<?php 
for ($i = 0; $i < 5; $i++) 
{ 
    print '<option id="'.$options[$i]["ID"].'" value="'.$options[$i]["Value"].'">'.$options[$i]["Name"].'</option>'."\n"; 
} 
?> 
</select> 

したがって、ユーザーが格納している値には赤が表示されます。ドロップダウンリストに入力すると、選択した値を赤にする方法はありますか?

おかげで各要素に対して

+0

、正しいということでしょうか? 1つの値が選択され、ユーザーがページを投稿すると、前の値が選択されたまま返されることを意味しますか? – Drewdin

答えて

0
<select name="dropdown1" id="dropdown1"> 

<?php 
$selected = "red"; 

for ($i = 0; $i < 5; $i++) 
{ 
    if ($options[$i]['Value'] == $selected) { 
     print '<option selected="selected" id="'.$options[$i]["ID"].'" value="'.$options[$i]["Value"].'">'.$options[$i]["Name"].'</option>'."\n"; 
    } else { 
     print '<option id="'.$options[$i]["ID"].'" value="'.$options[$i]["Value"].'">'.$options[$i]["Name"].'</option>'."\n"; 
    } 
} 
?> 
</select> 
0

にEの値をテストします。値が選択されている場合は、「選択済み」を印刷します。サイドノートとして

<select name="dropdown1" id="dropdown1"> 
<?php 
$selected = 'red';// obviously replace with DB value. 
for ($i = 0; $i < 5; $i++) 
{ 
    // start as normal 
    print '<option id="'.$options[$i]["ID"].'" value="'.$options[$i]["Value"].'"'; 

    // if this one is selected, add 'selected' to the tag. 
    // NOTE: booleans in HTML do not need to have an attribute value. 
    // so selected="selected" is not necessary here. 
    if($options[$i]["Value"] == $selected) print ' selected'; 

    // finish as normal 
    print '>'.$options[$i]["Name"].'</option>'."\n"; 
} 
?> 
</select> 

:あなたはそれをforeachの使用している場合は、より小さく、よりコンパクトなために作る、そして多くの場合、高速なコードになります。あなたが選択ボックスはスティッキー作りたい

//this assumes that you want to iterate the whole options array 
foreach($options as $option) 
{ 
    print '<option id="'.$option["ID"].'" value="'.$option["Value"].'"'; 
    if($option["Value"] == $selected) print ' selected'; 
    print '>'.$option["Name"].'</option>'."\n"; 
} 
関連する問題