你好我有以下问题:
我有一个表格,我想通过 php 检查一些输入错误。除此之外,我想显示有关错误的用户信息。
我遇到的问题是,我只喜欢显示一条消息,而不是同时显示所有消息。因此,我需要过滤来自 php 的所有错误消息,以将其限制为一条。
所以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;?>
问题是同时只显示一条错误消息的条件!
所以这里有一些图形来说明我的意思:
这是目前的情况,所有的错误 div 会同时显示:
这就是我想要实现的,同时只会显示一条错误消息,开始通过第一个输入字段进行检查:
这样用户将被迫在显示第二个错误层之前更正第一个输入字段:
希望现在清楚。