根据会话变量选择下拉值

时间:2012-04-29 17:01:00

标签: php forms session drop-down-menu

我有一个php表单,它将数据提交给另一个php进行验证。如果任何字段留空,验证器php会使用会话变量将消息发送回原始php表单以及所有预填充变量,以便用户不必再次填充它们。

我可以使用这些会话变量再次填写文本框

value="<?php echo $_SESSION['fname'] ?>"

但如何填充下拉菜单,单选按钮和复选框?

感谢

4 个答案:

答案 0 :(得分:4)

对于选择,复选框或单选框,您需要检查值是否匹配。类似的东西:

<select name="fname">
 <option value="1" <?php if($_SESSION['fname'] == 1) echo 'selected'; ?>>1</option>
 <option value="2" <?php if($_SESSION['fname'] == 2) echo 'selected'; ?>>2</option>
</select>

如果要遍历选项字段的值,则更容易:

<select name="fname">
 <?php foreach($array AS $key => $value) { ?>
  <option value="<?php echo $value; ?>" <?php if($_SESSION['fname'] == $value) echo 'selected'; ?>><?php echo $value; ?></option>
 <?php } ?>
</select>

答案 1 :(得分:1)

<select>元素的所选<option>不是由value=属性决定的。为了标记所选的选项,<option>元素必须设置selected属性,如下所示:

<select>
    <option>1</option>
    <option selected>2</option>
    <option>3</option>
</select>

为了以编程方式执行此操作,您需要遍历选项,并手动测试正确的选项,并将selected添加到该选项。

答案 2 :(得分:1)

使用JQuery有一个更简单的方法。您可以使用.val()设置选择,以便充分利用它。

<script type="text/javascript">
$("#fname").val("<?php echo $_SESSION['fname']; ?>");
</script>

请勿忘记将选择ID和名称设置为 fname

答案 3 :(得分:1)

...注意到声明末尾的双引号是错误的,应该是:

<script>
    $("#fname").val("<?php echo $_SESSION['fname'] ?>");
</script>
相关问题