我正在处理个人资料更新页面,我有一个表单字段,用户可以选择启用或禁用。当我回显该值时,它具有重复并且可能使用户感到困惑。我该如何摆脱重复?
<div class="form-group">
<label for="status" class="col-sm-3 control-label">Change Status</label>
<div class="col-sm-9">
<select class="form-control btn-danger" id="status" name="status">
<option value="<?php echo $status ?>"><?php echo $status ?></option>
<option value="Disabled">Disabled</option>
<option value="Enabled">Enabled</option>
</select>
</div>
</div>
正如你所看到的,如果状态已启用并且我点击了选择菜单,它会说启用两次,同样适用于禁用。
我唯一想到的是让另一个字段标记为当前状态,并使用选择菜单来更改状态。
我真的不想那样做。
<div class="form-group">
<label for="currentstatus" class="col-sm-3 control-label">Current Status</label>
<div class="col-sm-9">
<input type="text" class="form-control" id="currentstatus" name="currentstatus" value="<?php echo $status ?>">
</div>
</div>
<div class="form-group">
<label for="status" class="col-sm-3 control-label">Change Status</label>
<div class="col-sm-9">
<select class="form-control btn-danger" id="status" name="status">
<option value="<?php echo $status ?>"><?php echo $status ?></option>
<option value="Disabled">Disabled</option>
<option value="Enabled">Enabled</option>
</select>
</div>
</div>
这对我有用:
<option <?php if ($status=="Disabled") echo " selected"; ?>>Disabled</option>
<option <?php if ($status=="Enabled") echo " selected"; ?>>Enabled</option>
答案 0 :(得分:2)
不是将所选值输出为另一个选项,而是将其输出为现有选项的selected
属性。像这样:
<select class="form-control btn-danger" id="status" name="status">
<option value="Disabled" <?php echo ($status == "Disabled") ? "selected" : ""; ?>>Disabled</option>
<option value="Enabled" <?php echo ($status == "Enabled") ? "selected" : ""; ?>>Enabled</option>
</select>
可能有多种方法可以达到相同的最终结果,但关键是不要根据您拥有的数据添加选项,而是使用该数据来确定哪些是现有的,应该选择你已经拥有的有限的硬编码选项。
答案 1 :(得分:0)
这里有一些jQuery可以让你改变选择框的值。
function setStatusSelect(val) {
$("select#status").val(val);
}
setStatusSelect('Enabled');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="form-group">
<label for="status" class="col-sm-3 control-label">Change Status</label>
<div class="col-sm-9">
<select class="form-control btn-danger" id="status" name="status">
<option value="Disabled">Disabled</option>
<option value="Enabled">Enabled</option>
</select>
</div>
</div>
如果在页面顶部包含Jquery函数(以便快速加载),那么你可以这样做:
<?php
print("<script type=\"text/javascript\">");
print("setStatusSelect(".$status.")");
print("</script>");
?>
设置值。
我没有测试过PHP部分,但我知道jQuery
部分可以工作。