为HTML表单下拉列表指定默认选定项

时间:2010-08-31 11:04:59

标签: php html forms drop-down-menu selectedindex

通常,当您需要默认选择项目时,您可以:

<select>
  <option value="1">                 Volvo  </option>
  <option value="2" selected="true"> Saab  </option>
  <option value="3">                 Mercedes  </option>
  <option value="4">                 Audi  </option>
</select>

有可能得到这样的东西吗?

<select selectedValue="2">
  <option value="1">  Volvo  </option>
  <option value="2">  Saab  </option>
  <option value="3">  Mercedes  </option>
  <option value="4">  Audi  </option>
</select>

在PHP中更容易实现,因为您只需要对一个值进行软编码,而不是在任何可能的<option/>上处理所选属性。

6 个答案:

答案 0 :(得分:7)

<select>元素上没有类似的属性。假设您的<option>输出处于循环中,我不知道它是如何产生巨大差异的:

$selected = "2";
foreach($values as $key => $val) {
    echo "<option value=\"" . $key . "\"" . ($key == $selected ? " selected=\"selected\">" : ">") . $val . "</option>";
}

(我的PHP有点生疏,可能不是100%正确)

答案 1 :(得分:3)

在声明列表框之后放置JavaScript并在那里设置所选索引:

<script>
document.getElementById('listBoxId').selectedIndex=<?php echo $INDEX ?>;
</script>

像这样。

答案 2 :(得分:3)

不,但您可以将您的默认值添加到您的ID

<select id="default-value-2">

然后在您的选项中,您有

<option value="2" <?php echo is_this_the_default_value ? selected='true' : '' ?>

或其他相似的东西(原谅我忘记了我的php语法,但我希望你明白这一点。)

无论如何,这也是一个脏修复,所以我建议只添加一个方法来检查默认的选定标签,并在默认情况下将其选中=“已选”。如果循环选择选项

,则可以调用一次

答案 3 :(得分:1)

你可以这样做:

$value = 1;

<select>
<?php if($value==1) echo "<option selected='true'> Volvo </option>";
else echo "<option> Volvo </option>"; ?>
<?php if($value==2) echo "<option selected='true'> Saab </option>";
else echo "<option> Saab </option>"; ?>
</select>

答案 4 :(得分:0)

我发现自己在谷歌上搜索,看看是否有更好的方法。

最好和最干净的答案来自@roryf,但是如果你没有循环浏览你的数据,我认为将它包装在一个函数中会更加清晰:

function set_selected($desired_value, $new_value)
{
    if($desired_value==$new_value)
    {
        echo ' selected="selected"';
    }
}

然后你会像这样使用它:

<?php $selected_value = 2; ?>

<select>
    <option value="1"<?php set_selected('1', $selected_value); ?>> Volvo  </option>
    <option value="2"<?php set_selected('2', $selected_value); ?>> Saab  </option>
    <option value="3"<?php set_selected('3', $selected_value); ?>> Mercedes  </option>
    <option value="4"<?php set_selected('4', $selected_value); ?>> Audi  </option>
</select>

这会将Saab设置为选中:)

答案 5 :(得分:0)

然后从数据库中预加载api-key: XXXXXXXX,然后->(我必须转义“”)

PHP:

$statusid

HTML:

    $option_0  = '';
    $option_11 = '';
    $option_12 = '';
    $option_13 = '';
    $option_14 = '';
    $option_15 = '';
    $option_16 = '';
    
    
    if ($statusid ==0  ){
        $option_0 = 'selected=\"\"';
    }elseif($statusid ==11 ){
        $option_11 = 'selected=\"\"';
    }elseif($statusid ==12 ){
        $option_12 = 'selected=\"\"';
    }elseif($statusid ==13 ){
        $option_13 = 'selected=\"\"';
    }elseif($statusid ==14 ){
        $option_14 = 'selected=\"\"';
    }elseif($statusid ==15 ){
        $option_15 = 'selected=\"\"';
    }elseif($statusid ==16 ){
        $option_16 = 'selected=\"\"';
    }

对我来说很完美。