如何更改php代码以在每个输入框下显示错误



我有以下代码:

if(isset($_POST['submit'])){
if (! isset($_POST['firstname'])) {
$error[] = "Please fill out all fields";
}
if (! isset($_POST['surname'])) {
$error[] = "Please fill out all fields";
}
........

带验证:

if (strlen($_POST['firstname']) < 2){
$error[] = 'First name cannot be empty';
}
if (strlen($_POST['surname']) < 2){
$error[] = 'Please provide your surname';
}
......

对数据库进行了更多的检查。。。。

这会检查错误并一次性显示:

if(isset($error)){
foreach($error as $error){
echo '<p class="error-login">'.$error.'</p>';
}
}

虽然这很好,但我希望在发生错误的每个输入框下都显示错误。

我不想更改整个代码,只想对这个代码进行必要的更改,这是我自己无法做到的。

把它们放在数组中是唯一的方法,还是有更简单的方法?

谢谢。

方法是-在某个键下向$error添加错误,我认为-输入字段的名称:

if(isset($_POST['submit'])){
// I use key `all` for errors that don't belong to any field
if (! isset($_POST['firstname'])) {
$error['all'] = "Please fill out all fields";
}
if (! isset($_POST['surname'])) {
$error['all'] = "Please fill out all fields";
}
if (strlen($_POST['surname']) < 2){
$error['surname'] = 'Please provide your surname';
}

在您的html标记中:

// general errors, not related to inputs
if(isset($error['all'])){
foreach($error['all'] as $err){
echo '<p class="error-login">'.$err.'</p>';
}
}
<input type="text" name="surname" />
<?php
if(isset($error['surname'])){
foreach($error['surname'] as $err){
echo '<p class="error-login">'.$err.'</p>';
}
}

相关内容

  • 没有找到相关文章

最新更新