PHP echo选择菜单值但删除重复

时间:2017-04-20 18:10:31

标签: php jquery

我正在处理个人资料更新页面,我有一个表单字段,用户可以选择启用或禁用。当我回显该值时,它具有重复并且可能使用户感到困惑。我该如何摆脱重复?

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

2 个答案:

答案 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部分可以工作。