如果我的表单有两个复选框,这些复选框与name属性具有相同的数组
名称= “1_1 []”
并且这些复选框都没有勾选,有什么方法可以让我知道它们存在于表单中吗?如果未选中这些字段,则不会通过$ _POST数组发送这些字段。
我问这个因为这些名称值是动态生成的,我并不总是知道它们是什么,我必须验证它们(确保至少检查了其中一个)。
我是否必须开始使用隐藏字段来发送名称属性值,或者有更好的方法吗?
答案 0 :(得分:2)
如果您想继续使用复选框,如果您真的无法访问接收页面上的数据,则使用隐藏字段可能是最明智的方法。如果未选中,则无法获取复选框以发送值,这就是它们的工作方式。
另一方面,不知道期待什么数据的接收页面听起来很奇怪。你能不能重新获取相同的数据?
答案 1 :(得分:1)
它们不在$ _POST数组中的事实意味着您可以使用isset()
查看它们是否已设置。
如果你有两个复选框,至少需要设置一个,你可以这样做:
$missingValue = TRUE;
if(isset($_POST['checkbox_foo'] || isset($_POST['checkbox_bar'])
{
$missingValue = FALSE;
}
如果这还不够好,你将不得不使用隐藏的字段。