2013-11-10 77 views
0

我正在用兩條驗證兩個輸入字段的if語句掙扎,並在一行之下顯示錯誤消息。我使用了兩個if語句,但是一進入一個輸入字段,另一個錯誤文本消息就消失了。我試圖使用if,else語句,但不幸的是它只顯示一條錯誤消息而不是兩條。這裏是我的代碼片段PHP在一行中觸發兩個if語句

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語法如此好。歡迎任何幫助!

+0

嘗試:'如果(!($ FNAME && $ SNAME)){...}' – elclanrs

+0

我仍然無法弄清楚如何顯示兩個消息在一行中我嘗試了這樣的事情 - 「<?php if(isset($ err_sname)&&(isset($ err_fname)))echo $ err_sname; echo $ err_fname?>」但是出現錯誤 - 注意:Undefined variable :err_fname在第95行 – piotre

回答

2

使用&&operator檢查兩個條件

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

?> 
+0

的C:\ xampp \ htdocs \ enquiry.html.php中,嘗試並隔離您的比較,例如(($ err_sname ===「」)&&($ err_fname ===「」)){ //做shtuff; } –

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

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