Требуется помощь в написании скрипта каталога товаров

KeyMS

Новичок
Начал писать каталог товаров.

Есть общий список разделов.
При выборе раздела скрипту передается его номер, и отображается список параметров в несколько столбцов:

Например раздел: Игрушки (ссылка категории index.php?cat=1)
Параметры:

цвет
- красный (ссылка параметра index.php?cat=1&par1=1)
- синий (ссылка параметра index.php?cat=1&par1=2)
- зеленый (ссылка параметра index.php?cat=1&par1=3)

Производитель:
- Россия (ссылка параметра index.php?cat=1&par2=1)
- Франция (ссылка параметра index.php?cat=1&par2=2)
- Бельгия (ссылка параметра index.php?cat=1&par2=3)

Размер:
- маленький (ссылка параметра index.php?cat=1&par3=1)
- средний (ссылка параметра index.php?cat=1&par3=2)
- большой (ссылка параметра index.php?cat=1&par3=3)
-

Считываю их вот так:
PHP:
if (!isset($cat)) $cat=$_GET['cat'];
if (!isset($par1)) $par1=$_GET['par1'];
if (!isset($par2)) $par2=$_GET['par2'];
if (!isset($par3)) $par3=$_GET['par3'];
Как сделать так, чтобы выбранные параметры были связаны между собой, т.е. например я мог выбрать в параметрах несколько сразу и в любой последовательности.

Например: выбрать все синие, Бельгийские, большие игрушки

Как можно сохранить предыдущий выбор ?

Я так понимаю, что надо как то динамически модифицировать ссылку ?

Есть идея заменять ссылку на $_SERVER['REQUEST_URI']+новый параметр
$link=$_SERVER['REQUEST_URI']."&par1=2";

Но как выделить, что в этой ссылке уже есть например par1, par2 или par3

Или можно сделать это значительно проще ?
 

KorP

Новичок
я как то суть не уловил, но ведь все эти параметры - форма, и в чём проблема отправить данные из формы гетом? или я не так понял?
 

AmdY

Пью пиво
Команда форума
KorP
у него проблемы с формированием этого гета, так как пытался работать с уролом как со строкой конкатируя последующие изменения
PHP:
$url = "script.php?";
$url .= "var=1&";
// много кода
$url .= "var2=2&";
// много кода
$url .= "var=3&"; // мы же эту переменную задали раньше и её нужно переопределить
echo $url; // script.php?var=1&var2=2&var=3
 

KorP

Новичок
я тока понять не могу - а зачем такой геморой то?
единственный параметр который он за собой "тянет" это cat=1, но его в форме то передать не проблема
не понимаю смысла
 

KeyMS

Новичок
Мне надо запоминать текущее состояние и каждое нажатие на новый параметр из списка учитывает все предыдущие нажатия, а изменение ключевого параметра бы вело к сбросу остальных.
 

AmdY

Пью пиво
Команда форума
фильтр помнит состояние предыдущего и дописывает свою переменную /catalog.php?*********&param2=2
текущие параметры хранятся в переменной $_GET и нам нужно дописать или переписать их для этого смержим $_GET c нужными параметрами
PHP:
array_merge($_GET, array('param2' => 2)) и получаем урл
echo $baseUrl . http_build_query(array_merge($_GET, array('param2' => 2)));
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
ой какая прелесть! как же а я 10 лет жил без этой функции?
 
Сверху