根据PHP变量设置表单下拉列表

时间:2013-06-05 13:05:41

标签: php html mysql forms

我有一个带有四个选项的下拉表单项。

<p>Priority: 
  <select required name=\"priority\">
    <option default value=\"1\">1 - 10 days</option>
    <option value=\"2\">2 - 5 days</option>
    <option value=\"3\">3 - 48 hours</option>
    <option value=\"4\">4 - 24 hours</option>
  </select>
</p>

http://jsfiddle.net/2nmxN/

这些值已经使用1,2,3,4存储在SQL数据库中。我正在处理的页面是各种编辑页面,因此我希望在下拉列表中选择数据库中设置的任何值,因此用户无需在提交时重新选择该值。我怎样才能找到它并根据设置选择正确的选项?使用像这样的文本字段,我没有问题:

echo "<p>Cost: <input required type=\"text\" name=\"cost\" value=\"".$cost."\">";

我是否必须为每个值(if ($priority == 1) {...})等执行四种不同的if语句?

3 个答案:

答案 0 :(得分:5)

如果选项存储在关联数组中,您可以编写如下内容:

foreach ($options as $value => $label) {
    echo '<option value="', $value, '"', ($dbValue == $value ? ' selected="selected"' : ''), '>', $label, '</option>';
}

答案 1 :(得分:1)

您不必为每个值执行四个不同的if语句。你必须做四个if语句,每个值一个。

答案 2 :(得分:0)

foreach ($options as $value => $label) 
{
  if(isset($_POST['priority']) && $_POST['priority']==$value)
  {
    $selected = 'selected="selected"';
  }
  else
  {
    $selected='';
  }

  echo '<option value="'. $value. '" '.$selected.'>'. $label. '</option>';
}