你好我有以下問題:如何縮短php的狀態?
我有一個表格,我想檢查通過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將在同一時間顯示的情況:
這是什麼我想達到,只有一個錯誤信息將同時顯示在第一個輸入字段開始檢查:
,這樣用戶將被強制顯示第二誤差層之前糾正第一個輸入字段:
希望現在得到明顯。
籠統地說,我覺得你是在一個錯誤的方式思考它。作爲一名用戶,如果我必須多次發送表單來了解所有錯誤,那麼我會非常沮喪,因爲您一次只顯示一個錯誤。如果您一次顯示所有內容,則可用性更高。但是如果您正在進行測驗或測試,那麼您可以按照自己的方式進行測試。 – 2012-07-23 13:10:50
還有一些錯誤的div顯示用戶,這有一些問題。但如果他想知道什麼是錯誤的,他可能會在提交表單之前看到它。同時有很多信息會變得有點混亂。太多的信息一次。這就是我爲什麼要這樣的原因。 – bonny 2012-07-23 13:44:04