3

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

<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/>.

4

6 回答 6

8

<select>元素上没有类似的属性。假设您的<option>输出处于循环中,我看不出它有什么巨大的不同:

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

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

于 2010-08-31T11:11:38.053 回答
3

不,但您可以将默认值添加到您的 id 中,例如

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

那么在你的选择中,你有

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

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

无论如何,这也是一个肮脏的修复,所以我建议只添加一个方法来检查默认选择的标签并在默认情况下打印它 selected="selected" 。如果您遍历您的选择选项,您可以只调用一次

于 2010-08-31T11:12:53.493 回答
2

将 JavaScript 放在列表框声明之后,并在那里设置选定的索引:

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

像这样的东西。

于 2010-08-31T11:10:46.300 回答
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>
于 2013-03-29T18:04:26.407 回答
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 设置为选中 :)

于 2014-04-18T22:30:21.010 回答
0

然后从数据库预加载$statusid->(我必须逃脱“)

PHP:

    $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=\"\"';
    }

HTML:

    ."<select id=\"id\" name=\"name\" >"
    ."  <option {$option_0} value=\"0\">...TEXT...</option>"
    ."  <option {$option_11} value=\"11\">TEXT</option>"
    ."  <option {$option_12} value=\"12\">TEXT</option>"
    ."  <option {$option_13} value=\"13\">TEXT</option>"
    ."  <option {$option_14} value=\"14\">TEXT</option>"
    ."  <option {$option_15} value=\"15\">TEXT</option>"
    ."  <option {$option_16} value=\"16\">TEXT</option>"
    ."</select><br /><br />"

非常适合我。

于 2020-10-16T22:33:49.910 回答