Мне нужно сделать страничку на которой выбираются два независимых параметра (см. иллюстрацию). При этом, после выбора первого параметра страничка должна перезагрузиться и в Результат должны быть выведены записи, удовлетворяющие этому параметру. Кнопка выбранного параметра должна быть после этого как-то помечена (цветом, рамкой и т.д.). Далее, может быть выбран второй параметр. При этом, страница опять перезагружается и в Результате должны быть выведены записи удовлетворяющие уже двум параметрам. При этом, должны быть помечены уже две кнопки - та, которую нажимали первый раз и та, которую нажимали во второй раз.
Варианты решений:
Вроде самое ествественное - сделать через сессию. Что не нравится - сессия не всегда работает, если отключены куки. Есть вариант использования параметра: session.use_trans_sid, но у меня это что то не заработало - никакого GET параметра к ссылкам автоматически не добавляется. И втрое возражение - как на все на это посмотрит бот поисковика?
Второй вариант: указанные кнопки - это реально кнопки (submit) формы, которые находятся внутри одной формы. При нажатии на кнопку происходит передача через $_POST - во-первых её собственного value, во-вторых, значения hidden поля, в котором сохранен предыдущий выбор для другого (независимого) ряда кнопок. Полученные параметры превращаются сервером в GET параметры - формируется строчка для переадресации и на неё производится переадресация. Последнее делается затем, чтобы работали кнопки "Вперед"-"Назад" браузера. При прорисовке страницы кнопки помечаются в соответствии с GET параметрами.
Тут вроде все красиво, за исключением того, что будет трудно заставить кнопки выглядеть как ссылки (они будут в любом случае визуально "нажиматься"). Во вторых, - опять же - поисковики… вся эта переадресация. Да и потом, поисковики вроде бы не "смотрят" на кнопки форм. Таким образом, снижаются возможности индексации.
Сделать через JavaScript. Тут возможностей и вариантов решений хватает, но - что если отключены ява скрипты? И опять же - индексация.
Что выбрать? что делать? какие еще могут быть варианты?
Так, а если сделать комбинированно? То есть, для отключенного JavaScript использовать сессии (кстати только что , каким то чудом, заработало авто-добавление PHPSIDID к ссылкам), а в остальных случаев применять AJAX механизмы компонент.
Сказанное - рассуждения вслух… пока еще и не представляю как это все совместить и вообще колеблюсь. Например - что опять же "подумает" бот, глядя на сслыки вида: