用于未选中复选框的PHP $ _POST数组

时间:2011-03-19 22:33:11

标签: php

如果我的表单有两个复选框,这些复选框与name属性具有相同的数组

  

名称= “1_1 []”

并且这些复选框都没有勾选,有什么方法可以让我知道它们存在于表单中吗?如果未选中这些字段,则不会通过$ _POST数组发送这些字段。

我问这个因为这些名称值是动态生成的,我并不总是知道它们是什么,我必须验证它们(确保至少检查了其中一个)。

我是否必须开始使用隐藏字段来发送名称属性值,或者有更好的方法吗?

2 个答案:

答案 0 :(得分:2)

如果您想继续使用复选框,如果您真的无法访问接收页面上的数据,则使用隐藏字段可能是最明智的方法。如果未选中,则无法获取复选框以发送值,这就是它们的工作方式。

另一方面,不知道期待什么数据的接收页面听起来很奇怪。你能不能重新获取相同的数据?

答案 1 :(得分:1)

它们不在$ _POST数组中的事实意味着您可以使用isset()查看它们是否已设置。

如果你有两个复选框,至少需要设置一个,你可以这样做:

$missingValue = TRUE;

if(isset($_POST['checkbox_foo'] || isset($_POST['checkbox_bar'])
{
    $missingValue = FALSE;
}

如果这还不够好,你将不得不使用隐藏的字段。