[英]How to show a drop-down list with a pre-selected option
我想在單擊編輯按鈕時更新我的表單,然后所有信息都正確顯示,但狀態值顯示所有時間相同的打開選項。 我不知道為什么它顯示相同的打開狀態,我目前的狀態已經完成,但它顯示所有時間打開請幫我修復此問題謝謝
這是我的表單代碼用戶名正確顯示但狀態顯示不正確
<p><label class="field" for="username">UserName:</label>
<input name="username" type="text" id="username" value="<?php echo $username; ?>" size="50" />
</p>
<p>
<label class="field" for="Status">Status</label>
<select name="status" id="status" value="<?php echo $status; ?>" >
<option value="open">Open</option>
<option value="done">Done</option>
<option value="pending">Pending</option>
<option value="working">Working</option>
</select>
</p>
使用selected
屬性。
<select name="status" id="status">
<option value="open" <?php if($status=="open") { echo "selected"; } ?> >Open</option>
<option value="done" <?php if($status=="done") { echo "selected"; } ?> >Done</option>
<option value="pending" <?php if($status=="pending") { echo "selected"; } ?> >Pending</option>
<option value="working" <?php if($status=="working") { echo "selected"; } ?> >Working</option>
</select>
這是錯誤的方式,正確的方法就是這樣使用,
<select name="status">
<?php
$options = array("open","done","pending","working");
$selected = "done";
foreach($options as $option){
if($selected==$option){
echo '<option value="'.$option.'" selected="selected">'.ucfirst($option).'</option>';
}else{
echo '<option value="'.$option.'">'.ucfirst($option).'</option>';
}
}
?>
</select>
如果您確實希望在options標記中嵌入狀態,則應使用“selected”屬性來選擇標記選項。 這是您修改過的代碼,處理正確: -
<p><label class="field" for="username">UserName:</label>
<input name="username" type="text" id="username" value="<?php echo $username;?>" size="50" />
</p>
<p>
<label class="field" for="Status">Status</label>
<select name="status" id="status" >
<option value="open" <?php echo $status == 'open' ? 'selected' : ''; ?>>Open</option>
<option value="done" <?php echo $status == 'done' ? 'selected' : '' ;?>>Done</option>
<option value="pending" <?php echo $status == 'pending' ? 'selected' : '' ; ?>>Pending</option>
<option value="working" <?php echo $status == 'working' ? 'selected' : '' ; ?>>Working</option>
</select>
</p>
你需要選擇標簽。 像這樣修改你的表格
<select name="status" id="status"> <!-- value removed, there's no use of it here -->
<option value="open" <?php if ($status=="open") {echo "selected"}?>>Open</option>
<option value="done" <?php if ($status=="done") {echo "selected"}?>>Done</option>
....
</select>
使用所選屬性選項。
將您的代碼更改為
<select name="status" id="status">
<option value="open" <?php selected($status, 'open'); ?>>Open</option>
<option value="done" <?php selected($status, 'done'); ?>>Done</option>
<option value="pending" <?php selected($status, 'pending'); ?>>Pending</option>
<option value="working" <?php selected($status, 'working'); ?>>Working</option>
</select>
<?php
function selected( $selected_value, $value ) {
if( $selected_value === $value ) {
echo 'selected=true';
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.