我目前正在尝试验证表单服务器端,它的工作方式是将所有数据放入数组中,并将表单字段作为键和将字段数据作为值,但是我需要检查所有数据钥匙有一个价值相关的其他明智我希望提交停止和用户不得不编辑那里的细节,然后重新提交,是否有一个快速检查,我可以运行,而不是打破阵列分开,检查或检查之前是放在数组中与开关或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. 为元素数组中的每个元素赋值每个元素jQuery
- 2. 如何将验证规则应用于数组中的每个元素?
- 3. 打印数组中的每个元素
- 4. 命名数组中的每个元素
- 5. 更改数组中的每个元素
- 6. 由python中的同一个数组中的每个元素添加数组中的每个元素
- 7. 将一个数组中的每个元素与另一个数组的每个元素相乘的方式?
- 8. 如何使用数组来验证另一个数组中的元素长度?
- 9. 将一个数组的每个元素连接到ruby中其他数组的每个元素
- 10. 校验数组元素的
- 11. Googlemock:如何验证对象中数组中的元素?
- 12. 创建每个数组的第一个元素的数组
- 13. 如何将多个元素组合到一个验证器中?
- 14. MVC3 unobtrusive验证:如何从一组元素中删除/重新验证验证?
- 15. php count数组元素每10个
- 16. 连接每个其他数组元素
- 17. Javascript 2D数组获取每个元素
- 18. 打印出每个数组元素
- 19. 使用不同的规则验证每个表单元素?
- 20. 验证DOM元素
- 21. jQuery验证元素
- 22. JavaScript元素验证
- 23. 验证重复元素组与模式
- 24. MVC强制元素组jQuery验证
- 25. 迭代数组中的每个元素(第一个元素除外)
- 26. 将每个元素除以NumPy数组中的下一个元素
- 27. 如何在数组中的每个元素之后插入一个新元素?
- 28. 向数组中的每个元素/整数添加数字
- 29. 如何在Mongoose数组中验证其同时其元素
- 30. 在PHP中的多维数组中推送一个元素到每个数组?
你可以选择你的线? – Sampson 2009-01-23 16:22:21