我目前正在嘗試驗證表單服務器端,它的工作方式是將所有數據放入數組中,並將表單字段作爲鍵和將字段數據作爲值,但是我需要檢查所有數據鑰匙有一個價值相關的其他明智我希望提交停止和用戶不得不編輯那裏的細節,然後重新提交,是否有一個快速檢查,我可以運行,而不是打破陣列分開,檢查或檢查之前是放在數組中與開關或if語句丟失?驗證數組中的每個元素?
0
A
回答
0
一個選擇是做兩個。
以字段名稱作爲鍵具有單獨的字段選項數組。現在
$fieldTypes = array('nameFirst' => 'name',
'nameLast' => 'name',
'phone' => 'phone',
'email' => 'email');
foreach($input as $key => $value) {
switch($fieldTypes[$key]) {
case 'name':
//run $value against name validation
break;
case 'phone':
//run $value against phone validation
break;
case 'email':
//run $value against email validation
break;
default:
//code here for unknown type
}
}
,即可以在任何數量的方式來使用,很容易擴展到包括的東西,如果需要的字段或沒有,甚至是錯誤的信息等。通過將$fieldTypes
數組轉換爲多維數組或包含數據的對象數組。
這樣,如果您決定添加一個字段,它可能不會涉及驗證代碼中的太多更改。
0
如何像
<?php
$arrayFilled = true;
foreach($array as $key=>$value) {
$arrayFilled = trim($value) == '' ? false : $arrayFilled;
if($arrayFilled === false) { break; }
}
if($arrayFilled === false) {
echo "missing data";
}
else {
echo "filled array";
}
你可能要檢查的不僅僅是一個空字符串更多,但我把它留給你
1
Sico87,
更多的不是你不想同時測試所有的字段。例如,您可能有一個聯繫人字段,其中包含未授權的電話號碼條目選項,並且由於該原因而拒絕提交將會產生問題。
在很多情況下,單獨測試您的字段比較容易,因此您可以對每個字段進行特別的關注。您需要特別注意電子郵件地址,並特別注意生日。
從長遠來看,平等對待可能會造成非常嚴重的問題。
1
function fieldEmpty($value) {
return trim($value) == '';
}
if (count(array_filter($array, 'fieldEmpty'))) {
die('bad');
}
相關問題
- 1. Grape:數組中每個元素的自定義驗證器
- 2. 驗證數組的元素
- 3. Cakephp:驗證數組中的元素
- 4. 爲元素數組中的每個元素賦值每個元素jQuery
- 5. 如何將驗證規則應用於數組中的每個元素?
- 6. 更改數組中的每個元素
- 7. 命名數組中的每個元素
- 8. 打印數組中的每個元素
- 9. 數組元素的數組少於Python中每個元素的截斷數組
- 10. 由python中的同一個數組中的每個元素添加數組中的每個元素
- 11. 多維數組元素驗證
- 12. PHP將數組元素添加到另一個數組中的每個元素
- 13. 將數組中的每個元素與第二個數組中的每個元素相乘
- 14. 將一個數組中的每個元素與另一個數組的每個元素相乘的方式?
- 15. 如何使用數組來驗證另一個數組中的元素長度?
- 16. 將一個數組的每個元素連接到ruby中其他數組的每個元素
- 17. 每個N元素的新數組
- 18. 每個數組元素的監聽器
- 19. 校驗數組元素的
- 20. Googlemock:如何驗證對象中數組中的元素?
- 21. 如何在數組的每個數組元素中存儲值?
- 22. 從數組列表中獲取每個數組的元素?
- 23. 創建每個數組的第一個元素的數組
- 24. 如何將多個元素組合到一個驗證器中?
- 25. MVC3 unobtrusive驗證:如何從一組元素中刪除/重新驗證驗證?
- 26. XNA:每個四元組的數組元素的投影面積
- 27. 在JS中的數組表單元素驗證
- 28. jQuery驗證 - 每個元素有多個規則?
- 29. 由數組中的每一個組成的元素
- 30. 連接每個其他數組元素
你可以選擇你的線? – Sampson 2009-01-23 16:22:21