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


How to mantain radiobutton, dropdown and checkbox values if submit fails PHP

我知道如何使用文本输入。我可以很容易地将php脚本放入其值中,但使用输入组进行操作似乎有所不同。如果提交表单失败,我如何维护组输入的值?

若要将复选框或单选按钮重新标记为已选中,请使用以下代码:

<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']);?>">

总是假设用户试图破解您的系统,总是转义用户输入!

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