【问题标题】:How to display error message properly from check_required_fields function?如何从 check_required_fields 函数正确显示错误消息?
【发布时间】:2012-09-04 14:06:27
【问题描述】:

您好,我需要一些帮助。我有一个功能来验证表单的必填字段,我在其中传递了 req.数组中的字段,因此如果为空,例如 first_name 返回错误消息:“First_name 为空。” .问题是我想让消息中的字段名称看起来对用户更“友好”,没有驼峰或“_”。我怎样才能做到这一点?

附言这是我的代码:

$required_fields = array('first_name', 'last_name', 'email', 'profileInfo', 'message');
$errors = array_merge($errors, check_required_fields($required_fields));

现在输出错误消息如下所示: “first_name 是必需的”或“profileInfo 是必需的”。 函数是这样的:

function check_required_fields($required_fields) {
$field_errors = array();
foreach($_POST as $field=>$value){
    if(empty($value) && in_array($field, $required_fields) === true){
        $field_errors[] = "the " . $field . " is required.";
        //break 1;
    }
}
return $field_errors;

}

【问题讨论】:

    标签: php function field required


    【解决方案1】:

    你可以给每个必填字段一个标签...

    $required_fields = array(
            'first_name' => 'First Name',
            'last_name' => 'Last name',
            'email' => 'Email Address',
            'profileInfo' => 'Profile information',
            'message' => 'Message'
        );
    $errors = array_merge($errors, check_required_fields($required_fields));
    

    您需要更改check_required_fields 方法以正确处理$required_fields 数组,如下所示:

    function check_required_fields($required_fields)
    {
        $field_errors = array();
        foreach ($_POST as $field => $value)
        {
            if (empty($value) && array_key_exists($field, $required_fields) === true)
            {
                $field_errors[] = "the " . $required_fields[$field] . " is required.";
                //break 1;
            }
        }
        return $field_errors;
    }
    

    编辑:我刚刚注意到您在$_POST 上的循环只有在设置字段时才能按预期工作。请尝试以下操作:

    function check_required_fields($required_fields)
    {
        $field_errors = array();
        foreach ($required_fields as $field => $label)
        {
            $value = $_POST[$field];
    
            if (empty($value))
            {
                $field_errors[] = "the " . $label . " is required.";
                //break 1;
            }
        }
        return $field_errors;
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-03
      • 1970-01-01
      • 2013-07-16
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-29
      • 1970-01-01
      相关资源
      最近更新 更多