0

こんにちは私はいくつかの助けが欲しいです。フォームの必須フィールドを検証する機能があり、要求を渡します。配列内のフィールドであるため、が空の場合、たとえばfirst_nameはエラーメッセージ「first_nameisempty」を返します。。問題は、メッセージ内のフィールドの名前を、キャメルケースや「_」ではなく、ユーザーにとってより「わかりやすい」ように見せたいということです。どうすればこれを達成できますか?

psここに私のコードがあります:

$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;

}

4

1 に答える 1

2

各必須フィールドにラベルを付けることができます...

$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;
}
于 2012-09-04T14:11:10.820 に答える