填充DropDown并从数据库中获取选定的值

时间:2011-07-28 01:46:01

标签: php

我有代码从数据库中选择值来填充我的下拉列表。但我的问题是,如果我存储了用户在另一个数据库中选择的值,我将如何将其拉出来并将其作为选择的选择。

<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>

所以用户存储的值就是红色。如何在填充下拉列表时将所选值设为红色?

谢谢你

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

在每个元素上测试该值。如果选择了该值,则打印“已选择”。

<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";
}