表单提交后选中的复选框保持选中/未选中状态
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>
【讨论】:
以上是关于表单提交后选中的复选框保持选中/未选中状态的主要内容,如果未能解决你的问题,请参考以下文章