检查是否从表单中检查了复选框数组(PHP)

时间:2016-08-24 14:52:28

标签: php forms

我意识到这是一个之前被问过的问题("不能用[]进行阅读")但是我无法理解答案以及如何解决我的问题功能

function check_required_checkbox($checkbox_name, $error, $is_multiple_checkboxes)
{
    global $error_msgs;
    if ($is_multiple_checkboxes == true)
    {
        if (!isset($_POST[$checkbox_name][]))
        {
            $error_msgs[] = $error;
        }
    else if ($is_multiple_checkboxes == false)
    {
        if (!isset($_POST[$checkbox_name]))
        {
            $error_msgs[] = $error;
        }
    }
}

问题行是6,!isset($_POST[$checkbox_name][]),我不明白我应该怎样写它的正确方法。我看到了使用括号的情况,但!isset($_POST[{$checkbox_name}][])也不正确。

当我有多个使用name="radda[]"的复选框时,我希望我的函数检查是否选中了具有特定名称的所有复选框,如果没有,则将$error添加到$error_msgs[] } array。

修改 我与要求重写旧表格的部门讨论过。我没有使用复选框,而是将其切换到所有借款人权利和责任的列表,然后使用列表下方的单选按钮要求用户选择"是"或"不"他们是否阅读清单。然后我让它需要选择"是"或"不"并添加了验证,如果" no"如果被选中,他们将无法提交申请。与试图制作一堆复选框相比,这更容易。我很欣赏每个人提供的帮助。

1 个答案:

答案 0 :(得分:0)

如果我明白你需要什么。 尝试定义$ checkbox_name变量,然后访问POST。

$checkbox_name = 'radda';

if (isset($_POST[$checkbox_name]) && !is_array($_POST[$checkbox_name]))
{
   $error_msgs[] = $error;
}

这样的事情应该有用。

这是一个类似的主题:Retrieve an associative array value with a variable as key