我有 6 个选择输入字段,所有 6 个输入字段都具有相同的选项值,但我希望每个选择输入值应该是唯一的,例如
Input 5 and Input 6 are optional input field but if they are filled then they should be validated for unique value
Input1 Input2 Input3 Input4 Input5 Input6
value1 value1 value1 value1 value1 value1
value2 value2 value2 value2 value2 value2
value3 value3 value3 value3 value3 value3
现在,如果用户在 Input1
中选择了 value1
,那么他就无法在其他选择字段
中选择 value1
我知道我可以使用if elseif else
来做到这一点,但它不会那么专业,是否有更好的方法来验证它。
最佳答案
将字段的所有输入放入一个变量中,然后仅获取唯一值。
请参阅下文。这会有帮助。
if ($_POST) {
$validate_data = [];
$is_valid = FALSE;
$validate_data[] = $_POST['Input1'];
$validate_data[] = $_POST['Input2'];
$validate_data[] = $_POST['Input3'];
$validate_data[] = $_POST['Input4'];
// get unique elements from array
$result = array_unique($validate_data);
// if array size is equal to no of input fields then means all are unique
// else it has duplicate values
if (count($result) != 4 ) {
$is_valid = FALSE;
} else {
// Validate optional fields
if (isset($_POST['Input5']) && in_array($_POST['Input5'], $result)) {
$is_valid = FALSE;
} else if (isset($_POST['Input6']) && in_array($_POST['Input6'], $result)) {
$is_valid = FALSE;
} else {
$is_valid = TRUE;
}
}
echo ($is_valid) ? 'All are unique.' : 'Invalid Data';
}
关于javascript - 如何检查选择选项中的重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42622477/