Как я могу добавить переменные GET в конец URL текущей страницы, используя форму с php? - PullRequest
2 голосов
/ 18 июня 2010

У меня есть некоторая информация базы данных, которая отображается на странице.

Я использую класс разбиения на страницы, который использует переменную $_GET['page'] в URL. Если щелкнуть другой тег привязки для нумерации страниц, он поменяет $_GET['page'] на новый номер в URL и отобразит соответствующие результаты.

У меня есть функции сортировки и поиска, в которых используются переменные $_GET['searchby'] и $_GET['search_input']. Пользователь вводит свои критерии поиска в форму, которая использует GET. Затем переменные помещаются в URL, что позволяет отображать правильные результаты.

Проблема, с которой я сталкиваюсь, заключается в том, что всякий раз, когда я нажимаю на ссылку нумерации страниц, она добавляет переменную $_GET['page'] в конец URL и стирает $_GET['searchby'] или $_GET['search_input']. Когда я отправляю форму поиска, она добавляет $_GET['searchby'] и $_GET['search_input'], но стирает $_GET['page'].

Как добавить переменные GET в конец URL текущей страницы с помощью тега привязки и формы поиска / сортировки, не удаляя при этом существующие переменные GET, но переопределяя их, если они имеют одинаковое имя переменной GET?

Ответы [ 2 ]

6 голосов
/ 18 июня 2010

Попробуйте это:

if (strpos($_SERVER['REQUEST_URI'], '?') !== false)
{
  $url = $_SERVER['REQUEST_URI'] . '&var=value';
}
else
{
  $url = $_SERVER['REQUEST_URI'] . '?var=value';
}

<a href="<php echo $url;>">Go</a>

Обратите внимание, что $_SERVER['REQUEST_URI'] дает вам текущий URL, включая значение строки запроса.

1 голос
/ 18 июня 2010
$query_string = http_build_query(array_merge($_GET, array('page' => $page)));
...