0

こんにちは私は可能であれば、いくつかの助けが必要です。

各フィールドのすぐ下にフォームサーバー側の検証のエラーを表示するPHP関数を作成しました。基本的な部分は次のとおりです。

$errors = array();

//check if e-mail is valid
    if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
        $errors['email'] = "Please give a valid email.";
    }
.....

function display_error($field_name){
    global $errors;
    if($errors[$field_name]){
        echo "<span class=\"form_error\">" . $errors[$field_name] . "</span>\n";
    }
}

....

<span id="spryEmail">
<label>E-mail *<br />
<input type="text" name="email" id="email" />
</label>
<span class="textfieldRequiredMsg">Your e-mail is required.</span><span class="textfieldInvalidFormatMsg">Please provide a valid e-mail.</span></span>
<?php display_error('email'); ?>

ブラウザでフォームをプレビューすると(一時的にJavaScriptを無効にします)、次のように表示されます。

注意:未定義のインデックス:関数内のifステートメントを指す60行目のC:.......\functions.phpの電子メール。この通知を修正して、表示されないようにするにはどうすればよいですか?注:フォームを送信すると、エラーメッセージが正しく表示されます。

2)お気づきのとおり、onblurを検証するSpry検証もいくつか追加しました。キャプチャフィールドがあります

<span id="spryCaptcha">
<label>Security code *<br />
<img src="captcha.php" id="imgCode" />
<input type="text" name="captcha" id="captcha" />
</label>
<span class="textfieldRequiredMsg">Please type the code you see.</span></span>
<?php error_for('captcha'); ?>

そして、私が作りたいのは、ユーザーが間違ったコードを入力した場合、送信ボタンを押す前に、error_for関数からのメッセージもonblurを表示することです。どうすればこれを機能させることができますか?

どんな助けでもいただければ幸いです。

4

2 に答える 2

0

実際、関数内のコードのこの変更は、if(!empty($errors[$field_name])){ ... }私の最初の質問でかなりうまくいきました!

于 2013-01-28T11:40:31.830 に答える
-1

まずその醜いものを取り除きますglobal $errors

function display_error($errors, $field_name)

その後<?php display_error($errors, 'email'); ?>

そして、インデックスが存在することを確認してくださいif (isset($errors['email']))

于 2013-01-28T11:24:13.237 に答える