Сохраните все значения $ _GET, кроме одного, на следующую страницу

У меня есть таблица, которая заполнена несколькими строками, и это показано на основе сценария нумерации страниц, который я имею. В этой таблице есть две формы 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 для передачи отличаются на разных страницах.

2

Решение

Вы можете создать собственную функцию строки запроса:

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);
}

Вы можете передать желаемый номер страницы в качестве аргумента при вызове функции.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]