[英]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.