1

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

<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 语句?

4

3 回答 3

5

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

foreach ($options as $value => $label) {
    echo '<option value="', $value, '"', ($dbValue == $value ? ' selected="selected"' : ''), '>', $label, '</option>';
}
于 2013-06-05T13:10:13.763 回答
1

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

于 2013-06-05T13:09:06.390 回答
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>';
}
于 2013-06-05T13:53:39.280 回答