[英]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.