0

我正在努力使用两个 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 语法。欢迎任何帮助!

4

3 回答 3

2

使用&& 运算符检查这两种情况

<?php
 if ($err_sname === '' && $err_fname === ''){
    // Continue here
  }

?>
于 2013-11-10T01:13:38.383 回答
1

根据我的经验,将错误和消息累积在列表中并在需要时回显它们总是好的。这样,您还可以在不同的类和函数之间传递它们。

<?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;
 }

?>
于 2013-11-10T01:45:43.110 回答
0

试试这个:

<?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;
于 2013-11-10T08:57:49.563 回答