如何显示带有预选选项的下拉列表

时间:2013-11-03 07:01:32

标签: php html mysql

我想在单击编辑按钮时更新我的​​表单,然后所有信息都正确显示,但状态值显示所有时间相同的打开选项。我不知道为什么它显示相同的开放状态,我目前的状态是已完成但它显示所有时间打开请帮我解决此问题,谢谢

这是我的表单代码用户名正确显示但状态显示不正确

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

5 个答案:

答案 0 :(得分:3)

使用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>

答案 1 :(得分:1)

这是错误的方法,正确的方法就是这样使用,

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

答案 2 :(得分:1)

如果您确实希望在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>

答案 3 :(得分:0)

您需要选择标签。像这样修改你的表格

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

答案 4 :(得分:0)

使用所选属性作为选项。

将您的代码更改为

<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';
   }
}
?>