簡體   English   中英

為 HTML 表單下拉菜單指定默認選定項

[英]Specify a default selected item for HTML form drop-downs

通常,當您需要 select 默認項目時,您可以:

<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/>上的選定屬性。

<select>元素上沒有類似的屬性。 假設您的<option>輸出處於循環中,我看不出它是如何產生巨大差異的:

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

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

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

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

然后在你的選擇中,你有

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

或類似的東西(請原諒我忘記了我的 php 語法,但我希望你明白這一點)。

無論如何,這也是一個骯臟的修復,所以我建議只添加一個方法來檢查默認選擇的標簽,並在它是默認值時打印 selected="selected" 。 如果您循環選擇選項,您可以只調用一次

將 JavaScript 放在列表框的聲明之后,並在那里設置選定的索引:

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

像這樣的東西。

你可以這樣做:

$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>

我發現自己在谷歌上搜索這個,看看是否有更好的方法來做到這一點。

最好和最干凈的答案來自@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 設置為選中 :)

然后從 DB 預加載$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 />"

非常適合我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM