У меня есть таблица, которая заполнена несколькими строками, и это показано на основе сценария нумерации страниц, который я имею. В этой таблице есть две формы GET, которые обрабатывают сортировку и строки на странице. Когда формы отправляются, URL становится, например: ?page=2&order=desc&view=10
,
Проблема в том, что я не знаю, как пройти эти order
а также view
значения, когда я нажимаю на другую страницу. Это ссылка на предыдущую (или следующую) страницу моего скрипта:
$pagination.= "<li><a href=\"$targetpage?page=$prev\">Prev</a></li>";
$prev
является $page - 1
где $page
является $_GET['page']
, Когда я нахожусь на странице 2, и мне нужно перейти на страницу 1, я просто нажимаю ссылку выше, и мне нужно взять с собой order
а также view
на URL.
Я пробовал с
$build_query = http_build_query($_GET);
редактирование вышеупомянутой строки с этим:
$pagination.= "<li><a href=\"$targetpage?page=$prev{$build_query}\">Prev</a></li>";
Но, конечно, как только я нажимаю на ссылку, она дает мне
?page=1page=2&order=desc&view=10
Так что страница повторяется. Я также пытался unset($_GET['page']);
но я не знаю, как передать предыдущее значение страницы, чтобы установить затем $_GET['page']
правильно.
РЕДАКТИРОВАТЬ 1:
Весь код разбиения на страницы написан внутри функции, поэтому значения $ _GET для передачи отличаются на разных страницах.
Вы можете создать собственную функцию строки запроса:
function generate_query_string($page_num)
{
$query = '?';
foreach ($_GET as $key => $value) {
if ($key == 'page') {
$query.=$key.$page_num;
} else {
$query.=$key.'='.$value.'&';
}
}
// remove trailing '&'
return substr($query, 0, strlen($query) - 1);
}
Вы можете передать желаемый номер страницы в качестве аргумента при вызове функции.
Других решений пока нет …