こんにちは、次の問題があります。
私はいくつかの入力エラーをphp経由でチェックしたいというフォームを持っています。それに加えて、何が間違っているかについてのユーザー情報を表示したいと思います。
私が抱えている問題は、すべてのメッセージを同時に表示するのではなく、1 つのメッセージだけを表示したいということです。そのため、php からのすべてのエラー メッセージをフィルタリングして 1 つに制限する必要があります。
だからphpはこれを探しています:
<?php if (isset($errors['for_a']):?><div id="errormessage">some text</div><?php endif; ?>
そしてphpルールは次のとおりです。
(case1) ... if ( isset($errors['for_a']) AND (!isset($errors['for_b'])) AND (!isset($errors['for_c'])) OR (!isset($errors['for_d'])) ...
OR
(case 2) ...AND (!isset($errors['for_b'])) AND (!isset($errors['for_c'])) AND (!isset($errors['for_d'])) ...
and so on for input field a...
問題は、入力フィールドが 7 つあることです。これは、すべての可能性を記述しなければならないことを意味します。これを短くする方法はありますか?
どうもありがとう。
アップデート:
さて、私が達成したいことは十分に明確ではないかもしれません。
エラーメッセージの表示に問題はありません。これはうまくいきます。特定の入力フィールドごとの各エラー メッセージが正しく表示される可能性があります。
問題は、それぞれに異なるエラーメッセージがあることです。私はそれをより次元の配列に保存します:
if(empty($a)){$errors['a'][]="first failure for a"}
if(something else happens($a)){$errors['a'][]="second failure for a"}
...
if(empty($b)){$errors['b'][]="first failure for b"}
if(something else happens($b)){$errors['b'][]="second failure for b"}
...
そのエラーメッセージを表示することも問題ではありません。
<?php if (isset($errors['a'])):?>
<?php echo "<div class='erl'>";
echo $errors['a'][0];
echo "</div>";
endif;?>
<?php endif;?>
問題は、同時に 1 つのエラー メッセージのみを表示する条件です。
だからここに私が何を意味するかを示すためのいくつかのグラフィックがあります:
これは現時点での状況です。すべてのエラー div が同時に表示されます。
これは私が達成したいことです。同時に1つのエラーメッセージのみが表示され、最初の入力フィールドでチェックを開始します:
これにより、ユーザーは 2 番目のエラー レイヤーを表示する前に最初の入力フィールドを修正する必要があります。
それが今明らかになることを願っています。