从带有链接的选择菜单中自动选择选项

时间:2010-06-06 21:10:47

标签: php javascript html forms

我正在尝试使用php(如果不是php,javascript)链接到页面并在链接的末尾包含“?type = foo”或“#foo”,以便在链接页面加载时将从表单的下拉菜单中自动选择特定选项,具体取决于链接的结尾。我试图搜索这个,但不知道这个动作实际上是什么叫,但我以前见过它。有谁知道如何实现这一目标?非常感谢。

2 个答案:

答案 0 :(得分:1)

当我在过去创建它们时,为了便于使用,我只是将选定的值插入到选择对象的顶部,而不是滚动整个列表并在遇到它时标记所选的值。

假设该页面被调用为page.php?theSelectedList=Cougar

<select name="theSelectList">
  <?php
    if( isset( $_GET['theSelectList'] ) )
      echo '<option selected="selected">'.$_GET['theSelectList'].'</option>';
  ?>
  <option>Aardvark</option>
  <option>Baboon</option>
  <option>Cougar</option>
  <option>Dog</option>
  <option>Elephant</option>
</select>

在这种情况下, Cougar 的选项将显示两次 - 一次显示在列表顶部,然后选择,再次在正常位置的列表中再次显示。这可能听起来令人困惑,但是,在我使用它的情况下,它非常直观。

这很简单,但是,我会提到警告,如果选项标签和选项值不同,上面需要一些重新跳转(就像每个选项都有一个数值,但是文本一样)标签

答案 1 :(得分:0)

如果该选项位于<select>,那么您要查找的名称是selected属性。它可以应用于每个<option>标记,如下所示:W3Schools

使用它你可以简单地使用PHP if语句,例如:

<?php

$options = array('Norway', 'United States', 'Springfield');

echo '<select>';

foreach($options as $country) {
    if(array_key_exists('selected', $_GET) && $_GET['selected'] === $country) {
        echo '<option selected="selected">'.$country.'</option>';
    }
    else {
        echo '<option>'.$country.'</option>';
    }
}

echo '</select>';

如果查询为?country=Norway,则会在页面加载时选择挪威。

当然也可以使用javascript解决。