@SteepNET

Select подставить значение из cookie?

Добрый день! Реализую на сайте (Битрикс) селектор валюты.
Делаю так
<form name="form" action=""  method="get">
           <select class="form-control" name="currency" id="currency" onchange="this.form.submit()">
                        <option value="RUB" >RUB</option>
                        <option value="USD" >USD</option>
           </select>
</form>
<? setcookie('BX_CURRENCY', $_GET['currency'], strtotime( '+30 days' ), SITE_DIR);?>
<? echo $_COOKIE["BX_CURRENCY"]; ?>

Может не совсем элегантный способ, буду рад критике с примерами.
В данном примере успешно записываю в cookie данные, но естественно при перезагрузке страницы эти cookie удаются значением по умолчанию.

Заблудился в трех соснах, надо подставлять в selected значение из $_COOKIE["BX_CURRENCY"];
  • Вопрос задан
  • 275 просмотров
Решения вопроса 2
DevMan
@DevMan
1. выводить печеньку сразу после установки не имеет смысла – она будет доступна только после перезагрузки страницы.
2. просто проверить существует печенька или нет перед ее установкой.
3. прекратить использовать короткие теги.
Ответ написан
@SteepNET Автор вопроса
Решил так
<?php
$select = array(1=>'',2=>'');

if(isset($_POST['select'])) {
    setcookie("select",(int)$_POST['select']); 
    $select[(int)$_POST['select']] = 'selected'; 
} elseif(isset($_COOKIE["select"])) { 
    $select[(int)$_COOKIE["select"]] = 'selected';
}
?>
<form method="post">
<select name="select" onchange="this.form.submit()">
<option value="1" <?=$select[1]?>>1</option>
<option value="2" <?=$select[2]?>>2</option>
</select>
</form>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы