Hi
When there is a field that is in “LOOKUP” mode
In the “List Page”, its “Filter” checkbox is checked
(for enable the table header filter…)
The following error occurs in the search:
src\phpfn.php(2452): PHPMaker2025\MyProject\IsNumericSearchValue(): Return value must be of type bool, array returned
"x_myfield[]=1&x_myfield[]=2"
When I manually clear the [] in the address bar, (“x_myfield=1&x_myfield=2”) works but only shows one of my selections.
error line : return array_map("is_numeric", $fldVal);
Function :
function IsNumericSearchValue(array|string $fldVal, string $fldOpr, DbField $fld): bool
{
if ($fld->UseFilter && is_string($fldVal) && ContainsString($fldVal, Config("FILTER_OPTION_SEPARATOR"))) {
return implode(Config("FILTER_OPTION_SEPARATOR"), array_map("is_numeric", explode(Config("FILTER_OPTION_SEPARATOR"), $fldVal)));
} elseif ($fld->isMultiSelect() && is_string($fldVal) && ContainsString($fldVal, Config("MULTIPLE_OPTION_SEPARATOR"))) {
return implode(Config("MULTIPLE_OPTION_SEPARATOR"), array_map("is_numeric", explode(Config("MULTIPLE_OPTION_SEPARATOR"), $fldVal)));
} elseif (($fldOpr == "IN" || $fldOpr == "NOT IN") && ContainsString($fldVal, Config("IN_OPERATOR_VALUE_SEPARATOR"))) {
return implode(Config("IN_OPERATOR_VALUE_SEPARATOR"), array_map("is_numeric", explode(Config("IN_OPERATOR_VALUE_SEPARATOR"), $fldVal)));
} elseif (is_array($fldVal)) {
return array_map("is_numeric", $fldVal);
}
return is_numeric($fldVal);
}