0

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

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

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

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

谢谢

4

4 回答 4

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>
于 2012-04-29T17:05:48.103 回答
1

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

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

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

于 2012-04-29T17:03:44.773 回答
1

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

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

不要忘记将 select 的 id 以及 name 设置为fname

于 2014-10-14T11:33:06.087 回答
1

...注意到您在语句末尾的双引号放错了位置,它应该是:

<script>
    $("#fname").val("<?php echo $_SESSION['fname'] ?>");
</script>
于 2015-06-26T16:24:51.963 回答