我有一个php表单,它将数据提交给另一个php进行验证。如果任何字段留空,验证器php会使用会话变量将消息发送回原始php表单以及所有预填充变量,以便用户不必再次填充它们。
我可以使用这些会话变量再次填写文本框
value="<?php echo $_SESSION['fname'] ?>"
但如何填充下拉菜单,单选按钮和复选框?
感谢
答案 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>