kuzmich
Всем привет.
Столкнулся такой темой как смена региона и сохранение в COOKIE.
Сделал следующий год:Код (Text):
if (!isset($_COOKIE[‘region’])) { $city = $_POST[‘region’]; $time = time() + 300; setcookie(«region»,$city,$time,»/»);} if (!isset($_COOKIE[‘region’])) { echo « <form action=» method=’post’>Ваш регион: <select class=»region_select» name=»region» onchange=»this.form.submit()»> <option value=»»>Весь Казахстан</option> <option value=»Актобе»>Актобе</option> <option value=»Алматы»>Алматы</option> </select></form> «;} else { echo « <form action=» method=’post’>Ваш регион: <select class=»region_select» name=»region» onchange=»this.form.submit()»> <option value=»»>».$_COOKIE[‘region’].»</option> <option value=»»>Весь Казахстан</option> <option value=»Актобе»>Актобе</option> <option value=»Алматы»>Алматы</option> </select></form> «; }Теперь тут два момента:
1. При выборе Актобе или Алматы, страница как бы перезагружается но попрежнему стоит — Весь Казахстан, а после обновления — появляется тот город который я выбрал.2. Допустим я выбрал город Актобе и все отлично — я в нем работаю, а потом решил посмотреть какие данные в Алматы — выбираю Алматы и по-прежнему стоит Актобе. как правильно очистить cookie и выбрать другой город
ADSoft
вообще все не так)))))
1. откройте для cебя свойство selected для <option>
2. логика — бред, куки надо новые ставить лишь в том случае — когда пришел POST запрос с указанием города, а не каждый раз — когда нет кук
3. не надо 10 форм. все делать в одной — как — см п 1.
Drunkenmunky
Проверить $_POST[‘region’], если есть, то установить $_COOKIE[‘region’]
Если нет, то установить $city в $_COOKIE[‘region’], если она есть. Если нет, то в дефолтное значение
kuzmich
а можно теперь на русском объяснить? совсем запутался
— Добавлено —а можно пример? а то чет догнать не могу
Drunkenmunky
PHP:
boss1
есть пакеты , которые позволяют выбрать регион и регион по умолчанию
MouseZver
PHP 7.4.0 в одну строчку:
PHP:
echo $_POST[‘region’] ?? $_COOKIE[‘region’] ?? ‘default’;
Drunkenmunky
Выигрыш в чем?
roboformation
В размере и понимании
Drunkenmunky
Ммм. Бессмерное «патамушта».
roboformation
Одно дело — посмотреть на одну строку и осознать её, другое дело — несколько строк
Drunkenmunky
Я запишу.
roboformation