我有一个强大的专业表单字段设置了一个过滤器,以便在有人输入数字时测试该字段。如果数字在可接受的范围内(在这种情况下为200-300),则表单将提交,否则,表单将报告错误。我需要设置过滤器,以便比较两个或更多范围集而不是一个,但我不了解如何设置第二个甚至第三个范围。有两个或三个要比较的数组范围,它需要具有相同的功能。
add_filter('frm_validate_field_entry', 'my_custom_validation', 10, 3);
function my_custom_validation($errors, $posted_field, $posted_value){
if($posted_field->id == 92){
if(!in_array($posted_value, range(200,300) ) ){
//if it doesn't match up, add an error:
$errors['field'. $posted_field->id] = 'You have entered an invalid number!';
}
}
return $errors;
}
我已经尝试设置两个if(!in_array ...语句,但我不太了解PHP以获得阵列范围比较的语法。请帮助我理解如何使这项工作谢谢!
答案 0 :(得分:1)
您只需将支票与&&
,"和"分开即可。语法:
if(!in_array($posted_value, range(200,300) ) &&
!in_array($posted_value, range(400,500) ) &&
!in_array($posted_value, range(900,999) ) ){
这样,如果给定的数字不在第一个范围内而不在第二个范围内,则错误情况将为真。如果它在任何范围内,则错误情况将为false。