5

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

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

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

5 回答 5

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>
于 2013-11-03T07:05:52.993 回答
1

如果你真的想在选项标签中嵌入状态,你应该使用'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>
于 2013-11-03T07:18:17.040 回答
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>
于 2013-11-03T07:12:38.280 回答
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>
于 2013-11-03T07:07:31.210 回答
0

使用 selected 属性作为选项。

将您的代码更改为

<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';
   }
}
?>
于 2013-11-03T07:07:32.723 回答