"", 'cateFilter' => "", 'descFilter' => "", 'statFilter' => "", 'strtFilter' => "", 'cntyFilter' => "", 'townFilter' => "", 'postFilter' => "", 'contFilter' => "" ]; $filterArray = [ 0 => "", 1 => "", 2 => "", 3 => "", 4 => "", 5 => "", 6 => "", 7 => "", 8 => "" ]; $values = [ "Title" => 0, "Category" => 1, "Description" => 2, "Status" => 3, "Street" => 4, "County" => 5, "Town" => 6, "Postcode" => 7, "Contributor" => 8, ]; $rowLimit = 5; //$_POST['rowCount']; $facilityDataSet = new FacilityDataSet(); if (isset($_POST['pageButtons'])) { $currentPage = (int)$_POST['pageButtons']; } elseif (isset($_POST['pageDown'])) { $currentPage = (int)$_POST['pageDown']; } else { $currentPage = 0; // Default to the first page } if (isset($_POST['applyFilters']) && isset($_POST['filter'])) { $applyFilters = filter_input(INPUT_POST, 'applyFilters', FILTER_SANITIZE_STRING); $filterKey = filter_input(INPUT_POST, 'filter', FILTER_SANITIZE_STRING); // Set the filter and generate the new URI $filterSet = $facilityDataSet->setFilterUri($applyFilters, $filterArray[$filterKey] ?? ''); // Parse the existing query string parse_str($filterSet["newUri"], $queryParams); // Add or overwrite the 'page' parameter $queryParams['page'] = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT, [ 'options' => ['default' => 0, 'min_range' => 0] // Default to 0 for the first page ]); // Build the updated query string $newQueryString = http_build_query($queryParams); // Redirect with the updated URI header("Location: {$filterSet["path"]}?{$newQueryString}"); exit; } $filterArray[$_GET['category'] ?? null] = $_GET['term'] ?? null; $view->pageData = $facilityDataSet->fetchAll($filterArray); $view->paginator = new Paginator($rowLimit, $view->pageData); // Initialize paginator $view->paginator->setPageUri($currentPage); $view->pageNumber = $view->paginator->getPageFromUri(); $view->pageData = $view->paginator->getPage($view->pageNumber); // Send result count to view $view->dbMessage = $view->paginator->countPageResults($view->pageNumber) == 0 ? "No results" : $view->paginator->countPageResults($view->pageNumber) . " result(s)";