如何在html中设置选定的下拉列表

时间:2014-04-20 05:06:19

标签: dropdownbox

这是我的下拉列表代码,请指导我。

<div class = "form-inline">
  <label class = "">Situation</label>
  <select selected="" name="sit" id="situ" class='form-control'style="margin-left: 30px; width: 145px;">
    <option value="" >select</option>
    <?
    if ($situation != '') {
    $revise = $situation;
    }
    foreach ($revise as $row):
    ?>
    <option value="<?= $row['id']; ?>"><?= $row['situation']; ?></option>
    <? endforeach; ?>
  </select>
</div>

1 个答案:

答案 0 :(得分:0)

对于要为下拉列表选择的项目,请添加属性selected

例如

<select>
  <option value="0">0</option>
  <option value="1" selected="selected">1</option>
  <option value="2">2</option>
</select>

在这种情况下,将选择1。

要在表单提交后获取此下拉列表的值,它取决于表单 POST GET 的方法。

在这个例子中,我假设它是POST。 <form method="POST">

<div class = "form-inline">
  <label class = "">Situation</label>
  <select selected="" name="sit" id="situ" class='form-control'style="margin-left: 30px; width: 145px;">
    <option value="" >select</option>
    <?
    if (isset($_POST['sit']))
        $selected = $_POST['sit'];
    if ($situation != '') {
    $revise = $situation;
    }
    foreach ($revise as $row):
        $selectedHTML = '';
        if (isset($selected) && $row['id'] == $selected)
            $selectedHTML = ' selected="selected"';
    ?>
    <option value="<?= $row['id']; ?>"<?= $selectedHTML; ?>><?= $row['situation']; ?></option>
    <? endforeach; ?>
  </select>
</div>

你可以尝试这样的事情。

if (isset($_POST['sit']))
  $selected = $_POST['sit'];

这样做是检查是否找到$_POST['sit']值。如果是,那么我们会$selected,否则我们会留下它。

$selectedHTML = '';
if (isset($selected) && $row['id'] == $selected)
  $selectedHTML = ' selected="selected"';

然后在foreach循环中,我们将首先将$selectedHTML初始化为空字符串。它不会向<option>添加任何内容,除非它的值已更改。

我们将检查是否定义了$selected,如果是,我们将检查foreach循环中$row['id']的当前值是否等于提交的值{{1} }。如果是,我们会设置$selected$selectedHTML仅将selected="selected"添加到当前<option>