PHP$\u未选中复选框的POST数组

PHP$\u未选中复选框的POST数组,php,Php,如果我有一个表单,其中有两个复选框,它们与name属性具有相同的数组 name=“1_1[]” 这两个复选框都没有勾选,我有没有办法知道它们在表格中?如果未选中这些字段,则它们不会通过$\u POST数组发送 我这样问是因为这些名称值是动态生成的,我并不总是知道它们是什么,我必须验证它们(确保至少选中了其中一个) 我是否必须开始使用隐藏字段来发送名称属性值,或者有更好的方法吗?如果您确实无法访问接收页上的数据,如果您想继续使用复选框,使用隐藏字段可能是最明智的方法。如果未选中复选框,则无法获取用

如果我有一个表单,其中有两个复选框,它们与name属性具有相同的数组

name=“1_1[]”

这两个复选框都没有勾选,我有没有办法知道它们在表格中?如果未选中这些字段,则它们不会通过$\u POST数组发送

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


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

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


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

它们不在$\u POST数组中这一事实意味着您可以使用
isset()
查看它们是否已被设置

如果您有两个复选框,并且至少需要设置一个复选框,则可以执行以下操作:

$missingValue = TRUE;

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

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

将其放在复选框上方:编辑:忘记阅读最后一行。实际上,我自己使用隐藏字段,我认为这是最简单的方法。否则,您应该在服务器端页面验证是否设置了字段。接收页面不知道预期的数据是什么,因为表单是动态生成的(ala surveymonkey),并且名称param包含连接的DB id。谢谢,我将使用隐藏字段。@stef:您从哪里获得定义要首先显示哪些字段的数据?这是勘测设计器应用程序的一部分,因此字段的参数存储在数据库中。@stef:您不能再次从数据库中获取参数,然后将其与POST数据进行比较吗?