【问题标题】:Populate DropDown and Get Selected Value From Database填充下拉列表并从数据库中获取选定的值
【发布时间】:2020-03-07 17:01:30
【问题描述】:

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

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

所以用户存储的价值可以说是红色。当它填充我的下拉列表时,如何将选定的值设为红色?

谢谢你

【问题讨论】:

  • 您想让选择框保持粘性,对吗?这意味着如果选择了一个值并且用户发布了页面,那么当它返回之前的值时仍然被选中?

标签: php


【解决方案1】:
<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>

【讨论】:

    【解决方案2】:

    在每个元素上测试值。如果该值被选中,则打印 'selected'。

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

    【讨论】:

      猜你喜欢
      • 2017-09-26
      • 2016-01-09
      • 1970-01-01
      • 2015-01-25
      • 2010-09-17
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 2014-12-25
      相关资源
      最近更新 更多