如果提交失败,如何维护单选按钮,下拉列表和复选框值

时间:2011-08-03 02:17:14

标签: php

我知道如何使用文本输入。我可以轻松地将PHP脚本放入其值中,但使用输入组执行此操作似乎有所不同。如果提交表单失败,我怎样才能保留组输入的值?

2 个答案:

答案 0 :(得分:0)

打印单选按钮和复选框" checked"标记的input属性,或下拉" selected"标记的option属性。

答案 1 :(得分:0)

要复选复选框或单选按钮,请使用以下代码:

<input type="checkbox" name="foo" id="foo" checked="checked"/>

关键是checked="checked"

如果您使用的是复选框组,请确保该字段的name以方括号[]结尾,如下所示:

 <input type="checkbox" name="foo[]" id="foo_1" value="1" checked="checked"/>
 <input type="checkbox" name="foo[]" id="foo_2" value="2" checked="checked"/>

然后,您的$_REQUEST['foo']变量将自动成为已检查值的数组。您可以使用in_array查看是否已选中特定复选框。

根据评论进行更新

以下是我如何设置它:

<input type="checkbox" name="foo[]" id="foo_1" value="1" <?= (isset($_POST['foo'] && in_array('1', $_POST['foo'])) ? 'check="checked"' : '' ?>/>

对于单个项目(如收音机),请使用:

<input type="radio" name="foo" id="foo" value="1" <?= isset($_POST['radio]) ? 'check="checked"' : '' ?>/>

希望有所帮助。

更新2: 此外, 确保您转义用户输入! 您的示例 应如下所示:

<input type="text" name="username" value="<?php if(isset($_POST['username']) echo htmlspecialchars($_POST['username']);?>">

始终假设用户试图破解您的系统,总是逃避用户输入!