簡體   English   中英

如何顯示帶有預選選項的下拉列表

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

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