我有一个 php 表单,它将数据提交给另一个 php 进行验证。如果任何字段留空,验证器 php 将使用会话变量将消息连同所有预填充的变量一起发送回原始 php 表单,这样用户就不必再次填写它们。
我可以像这样使用这些会话变量再次填写文本框
value="<?php echo $_SESSION['fname'] ?>"
但是如何填充下拉菜单、单选按钮和复选框?
谢谢
我有一个 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() 设置选择,以便充分利用它。
<script type="text/javascript">
$("#fname").val("<?php echo $_SESSION['fname']; ?>");
</script>
不要忘记将 select 的 id 以及 name 设置为fname。
...注意到您在语句末尾的双引号放错了位置,它应该是:
<script>
$("#fname").val("<?php echo $_SESSION['fname'] ?>");
</script>