繁体   English   中英

根据会话变量选择下拉值

[英]select dropdown value based on session variable

我有一个php表单,可将​​数据提交到另一个php进行验证。 如果任何字段留为空白,验证器php会使用会话变量将消息连同所有预填充变量一起发送回原始php表单,从而使用户不必再次填充它们。

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

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

但是如何填充下拉列表,单选按钮和复选框呢?

谢谢

对于选择,复选框或单选框,您需要检查值是否匹配。 就像是:

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

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

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

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

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

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

不要忘记将select的ID以及名称设置为fname

...注意,语句末尾的双引号放错了位置,应为:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM