我想在单击编辑按钮时更新我的表单,然后所有信息都正确显示,但状态值显示所有时间相同的打开选项。我不知道为什么它显示相同的开放状态,我目前的状态是已完成但它显示所有时间打开请帮我解决此问题,谢谢
这是我的表单代码用户名正确显示但状态显示不正确
<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>
答案 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';
}
}
?>