Задать вопрос
passshift
@passshift
php, js, html5, css

Как добавить значение в $_GET?

Здравствуйте!

На сайте использую ряд фильтров для вывода информации.

Все на чистом PHP, без ajax.

Данные сортируются по 2 параметрам: производителю и цене

Как мне "склеить" эти 2 параметра если к примеру уже выбрана сортировка по производителю, а затем юзер хочет сделать еще и фильтр по цене? Пока все это оформлено в 2 формы GET, естественно при отправке каждой последующей формы GET перетирается, не сохраняя данные, которые были выбраны в прошлой форме...

Я так понимаю, что должен быть какой-то конструктор запроса и здесь не обойтись без jquery?
  • Вопрос задан
  • 3850 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 2
@ynChrome
Просто при формировании формы используйте данные из существующего запроса.
Пользователь выбрал производителя, в скрипт пришел параметр, например $_GET['manufacturer'] = 'acb company'.
Выводите во второй форме hidden name="manufacturer" value="abc company".
Ответ написан
sayber
@sayber Куратор тега PHP
Да, я программирую на PHP и еще асинхронно!
Вариантов много. Можно использовать hidden поля, можно менять адрес формы да что угодно.
Если у вас нативный php, то тут простора много. Ставьте нужные условия и все.
Да и зачем использовать две формы?
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
deadbyelpy
@deadbyelpy
веб-шмеб
Все на чистом PHP, без ajax.
- Надеюсь вы понимаете что ajax не расширение php
Пока все это оформлено в 2 формы GET
- что то не пойму что значит "формы GET" у вас две html формы?
ну судя по всему, да, так что в поле action вашей формы вы можете выводить полный урл вместе с текущем значениями из GETа (если они есть) и добавлять свой параметр, вот вам и будет сохранятся параметр.
и да, jquery не нужен
Ответ написан
t-alexashka
@t-alexashka
Сразу пишу legacy код
мне кажется вам нужно в одну форму объединить. а в пхп проверять если изменились данные только по ценам, то делать одно, если по производителям, то другое, а если и по ценам и по производителям то третье.
Ответ написан
Комментировать
Symphony
@Symphony
Форма html
<form>
    <input type="text" name="brand" value="audi">
    <input type="text" name="price" value="80000">
    <input type="submit" value="Submit">   
</form>

отправляем:
index.php?brand=audi&price=80000
ловим на пхп:
$brand = $_GET['brand'];
$price = $_GET['price'];
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Открываете сессию и сохраняете в ней установленные пользователем фильтры. Скажем, при запросе сортировки (?op=setOrder&field=manufacturer&order=desc) устанавливаете
if (isset($_GET['field'], $_GET['order']) && 
    in_array($_GET['field'], $allowedFieldsList) && 
    ($_GET['order'] == 'desc' || $_GET['order'] == 'asc'))
        $_SESSION['sort'] = array('field' => $_GET['field'], 'order' => $_GET['order']);

При установке фильтра (?op=addFilter&field=price&rel=lt&value1=1000) добавляете
if (isset($_GET['field'], $_GET['rel']) && 
    in_array($_GET['field'], $allowedFieldsList) && 
    in_array($_GET['rel'], $allowedRelationsList))
        $_SESSION['filter'][$_GET['field']] = array('relation' => $_GET['rel'], 
                                                    'value1' => $_GET['value1'], 
                                                    'value2' => $_GET['value2']);

Ну и строите запрос на выборку данных с учётом сохранённых в сессии значений.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы