表单提交后选中的复选框保持选中/未选中状态

Posted

技术标签:

【中文标题】表单提交后选中的复选框保持选中/未选中状态【英文标题】:selected checkbox remain checked/unchecked after form submission 【发布时间】:2017-08-30 13:21:41 【问题描述】:

我有这个简单的复选框。

我的问题是,如果我选择任何复选框,它应该在表单提交后保持选中状态。

<input type="checkbox" name="services" value="make-up"> Make-up <br>
<input type="checkbox" name="services" value="massage"> massage <br>
<input type="checkbox" name="services" value="haircut"> Haircut <br>

我从单选按钮尝试了这段代码,希望能工作,但失败了。

<?php if (isset($services) && $services=="make-up") echo "checked";?>

我了解到它可以使用 localstorage.. 但是我看到的所有示例都非常复杂。

有没有简单的方法来解决这个问题?

谢谢。

【问题讨论】:

你应该使用 AJAX。 你把php代码放在哪里了? 里面的输入先生 您的操作网址与当前网址相同? 是的,先生,它在同一个文件中 【参考方案1】:

由于您想使用复选框,您可能需要排列输入名称:

<input type="checkbox" name="services[]" value="make-up"> Make-up <br>
<input type="checkbox" name="services[]" value="massage"> massage <br>
<input type="checkbox" name="services[]" value="haircut"> Haircut <br>

结合如下功能:

<?php 
function isChecked($value)
    
        return (!empty($_REQUEST['services']) && in_array($value,$_REQUEST['services']));
    

最终得到类似的东西:

<input type="checkbox" name="services[]" value="make-up"<?php if(isChecked('make-up')) echo ' checked' ?>> Make-up <br>
<input type="checkbox" name="services[]" value="massage"<?php if(isChecked('massage')) echo ' checked' ?>> massage <br>
<input type="checkbox" name="services[]" value="haircut"<?php if(isChecked('haircut')) echo ' checked' ?>> Haircut <br>

【讨论】:

【参考方案2】:

您可以通过以下方式对其进行检查:

<input type="checkbox" name="services[]" value="make-up" 
<?php if (isset($_REQUEST['services']) && in_array("make-up",$_REQUEST['services'])) echo "checked";?>> Make-up <br>

其他字段也一样。

这将检查发布的值是否与复选框值相同。

【讨论】:

【参考方案3】:

你不能访问services as $services,你应该像这样$_REQUEST['services']REQUEST访问并像这样分配给变量$services=$_REQUEST['services'];

HTML:

<input type="checkbox" name="services" value="make-up" <?php if(isset($services) && $services=="make-up") echo "checked";   ?> > Make-up <br>

<input type="checkbox" name="services" value="massage" <?php if(isset($services) && $services=="massage") echo "checked";   ?> > massage <br>

<input type="checkbox" name="services" value="haircut" <?php if(isset($services) && $services=="haircut") echo "checked";   ?> > Haircut <br>

【讨论】:

以上是关于表单提交后选中的复选框保持选中/未选中状态的主要内容,如果未能解决你的问题,请参考以下文章

如果提交表单时未选中复选框,如何将布尔值更新为 0

回发后未选中复选框

要在表单中添加一个默认时为选中状态的复选框,应使用啥语句

提交 PHP 后保留表单值

强制复选框始终提交,即使未选中

即使在php中提交表单后也保持选中值[重复]