【问题标题】:html select dropdown wont stay selectedhtml 选择下拉菜单不会保持选中状态
【发布时间】:2016-02-02 17:36:12
【问题描述】:

我的网站 (www.irishbonus.comule.com/en/) 上有一个选择下拉列表。但是,当我从下拉列表中选择一个选项并按提交时,我希望该选项保持选中状态。 这是选择的代码:

<form action="" method="post">
<strong>   Select Subject:</strong>
<select name="formSubject" class="dropdown">
  <option value=">>>">">>>"</option>
  <option value="Accounting">Accounting</option>
  <option value="Agricultural Science">Agricultural Science</option>
  <option value="Agricultural Economics">Agricultural Economics</option>
  <option value="Applied Mathematics">Applied Mathematics</option>
  <option value="Arabic">Arabic</option>
  <option value="Art (jc only)">Art (jc only)</option>
  <option value="Biology">Biology</option>
  <option value="Business (jc only)">Business (jc only)</option>
  <option value="Business Studies">Business Studies</option>
  <option value="Chemistry">Chemistry</option>
  <option value="Civic (jc only)">Civic (jc only)</option>
  <option value="Classical Studies">Classical Studies</option>
  <option value="Construction Studies">Construction Studies</option>

//more options

  <option value="Typewriting (jc only)">Typewriting (jc only)</option>
</select>

<table width="300px">
<tr>
<td valign="top">
<strong>Insert Mark:</strong>
<input type="text" name="formMark" maxlength="2" size="4" value="<?=$mark;?>"/>
</td>
</tr>
</table>

<input type="submit" />
</form>

【问题讨论】:

    标签: html select


    【解决方案1】:

    您需要为此使用服务器端语言。您似乎已经在使用 PHP,因此只需添加一些 PHP 代码即可。最好的解决方案是将您的选项存储在一个数组中,然后遍历该数组,输出&lt;option&gt; 标签,如果值与提交的值匹配,则添加selected 属性。

    <select name="formSubject" class="dropdown">
    <?php
    $options = ['Accounting', 'Agricultural Science', '...'];
    $selected = isset($_POST['formSubject']) ? $_POST['formSubject'] : '';
    foreach($options as $option) {
        echo '<option value="'.$option.'"'.($selected == $option ? ' selected' : '').'>'.$option.'</option>';
    }
    ?>
    </select>
    

    【讨论】:

    • 所以我只是将我的选项放在选项数组中,这样可以吗?
    • 我尝试将其放入(使用选项)而不是旧的选择菜单中,但我得到了一个解析错误:/
    【解决方案2】:

    他忘记了array(),这就是解析错误的原因

    这里:

    <select name="formSubject" class="dropdown">
    <?php
    $options = array('Accounting', 'Agricultural Science', '...');
    $selected = isset($_POST['formSubject']) ? $_POST['formSubject'] : '';
    foreach($options as $option) {
        echo '<option value="'.$option.'"'.($selected == $option ? ' selected' : '').'>'.$option.'</option>';
    }
    ?>
    </select>
    

    【讨论】:

    • 我终于搞定了:
    • 函数 input_value($x){ if (isset($_POST[$x])) { return $_POST[$x]; } 其他 { 返回 ''; } }
    【解决方案3】:
    while ($row = $result->fetch_assoc()) {
    
        $selected = "";
        if(isset($_GET['spec'])) {
            if($_GET['spec'] == $row['id']) {
                $selected = "selected='selected'";
            }
        }
        print "<option ". $selected ." value='". $row['id'] ."'>". $row['ime']. "</option>";
    }
    
    $result->free();
    

    【讨论】:

      猜你喜欢
      • 2019-01-11
      • 1970-01-01
      • 2015-11-18
      • 2021-09-04
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多