【问题标题】:PHP checkbox validation checked or not checkedPHP复选框验证选中或未选中
【发布时间】:2021-01-22 04:31:00
【问题描述】:

我一直在为我的项目使用与此类似的代码,并且我能够使用 $_POST[] 获取所有“已选中”复选框。但是,我还需要获取未选中复选框的值,因为此表单是动态构建的,并且复选框的数量可能会有所不同,并且从选中状态更改为未选中状态,反之亦然。

<form method='post' action=''> <tr>
    <td>Trouble Type</td>
    <td>
    <input type='checkbox' name='checkboxvar[]' value='Option One'>1<br>
    <input type='checkbox' name='checkboxvar[]' value='Option Two'>2<br>
    <input type='checkbox' name='checkboxvar[]' value='Option Three'>3
    </td> </tr> </table> <input type='submit' class='buttons'> </form>

<?php 
if (isset($_POST['checkboxvar'])) 
{
    print_r($_POST['checkboxvar']); 
}
?>

我已经看到了一些使用 !isset($_POST[ ]) 的建议,但我不确定它是如何工作的,或者这是否是问题的解决方案。

任何帮助将不胜感激。

【问题讨论】:

  • 未选中的复选框不会传递到 POST 数据中。
  • 如果您不介意使用一点 javascript,您可以覆盖默认提交行为并使用您需要的所有数据构建一个 json 字符串,然后发送。
  • 如果有可用的选项,我宁愿用 PHP 解决这个问题...
  • java 解决方案是什么样的?另外,为什么 $_POST 数组只包含那些被“选中”的复选框而不是所有的表单对象?

标签: php checkbox


【解决方案1】:

我建议使用其他用户建议的 javascript。

如果您只想使用 PHP 和 HTML,您可以使用以下解决方案。 我写了它,但我不会在生产环境中使用这个解决方案。

<input type='hidden' name='checkboxvar[1]' value="0" />
<input type='checkbox' name='checkboxvar[1]' value='Option One' />1<br />
<input type='hidden' name='checkboxvar[2]' value="0" />
<input type='checkbox' name='checkboxvar[2]' value='Option Two' />2<br />
<input type='hidden' name='checkboxvar[3]' value="0" />
<input type='checkbox' name='checkboxvar[3]' value='Option Three' />3

如果选择了选项一,在 $_POST 数组中应该有类似的内容。

Array
(
     [1] => Option One
     [2] => 0
     [3] => 0
)

【讨论】:

猜你喜欢
  • 2016-10-15
  • 1970-01-01
  • 2012-02-23
  • 2019-08-19
  • 2011-10-11
  • 2018-10-24
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
相关资源
最近更新 更多