我正在努力解决两个 if 语句,这些语句验证两个输入字段并在一行中在其下方显示错误消息。我使用了两个 if 语句,但一旦我输入一个输入字段,另一个错误消息就消失了。我尝试使用 if , else 语句,但不幸的是它只显示一条错误消息而不是两条。 这是我的代码片段
if ($fname == '') :
$err_name = '<div class="error1">Please enter your first name</div>'; endif;
if ($sname == '') :
$err_sname = '<div class="error3">Please enter your surname</div>'; endif;
这是我的HTML代码的正文...
<span class=="error"><span>
<label for="Firstname" class="label">First Name:</label> <input name="Firstname" id="Firstname" onfocus="form; clrfirst()" placeholder="Letters only" type="text" size="20" value = "<?php if (isset($fname)){ echo $fname; } ?>" /><!-- first name input field -->
<label for="Surname" class="surname">Surname:</label>
<input name="Surname" id="Surname" onfocus="form; clrsurname()" placeholder="Letters only" type="text" size="20" value = "<?php if (isset($sname)){ echo $sname; } ?>" />
现在是最重要的员工
<?php if (isset($err_sname)) {echo $err_sname; } ?><?php if (isset($err_name)) {echo $err_name; } ?>
</div>
我希望必须有一个简单的解决方案,但我不太了解 PHP 语法。欢迎任何帮助!
使用 &&
运算符检查这两个条件
<?php
if ($err_sname === '' && $err_fname === ''){
// Continue here
}
?>
根据我的经验,将错误和消息累积在列表中并在需要时回显它们总是好的。这样,您还可以在不同的类和函数之间传递它们。
<?php
$err = array();
if ( empty($fname) ) {
$err[] = '<div class="error1">Please enter your first name</div>';
}
if ( empty($sname) ) {
$err[] = '<div class="error3">Please enter your surname</div>';
}
foreach( $err as $e ) {
echo $e;
}
?>
试一试:
<?php
// This assumes that $fname and $sname are at least defined at some point
if ($fname == '' || $sname == '') :
// If $fname is set but equal to '', then '<div class="error1">..</div>', otherwise FALSE
$err_name = (isset($fname) && $fname == '') ? '<div class="error1">Please enter your first name</div>' : FALSE;
// If $sname is set but equal to '', then '<div class="error3">..</div>', otherwise FALSE
$err_sname = (isset($sname) && $sname == '') ? '<div class="error3">Please enter your surname</div>' : FALSE;
endif;