Доброго времени суток!
Запутался с задачей вывода валют на сайте совсем, пытался по разному и через jquery в том числе...
Сайт на Битриксе. Есть селектор в шапке, в шаблоне. Посылаем POST на вывод и в cookies ,тут проблем нет, все запоминаем как положено.
$select = array('RUB'=>'','USD'=>'');
if(isset($_POST['select'])) {
setcookie("BX_CURRENCY",$_POST['select'], strtotime( '+30 days' ), SITE_DIR);
$select[$_POST['select']] = 'selected';
} elseif(isset($_COOKIE["BX_CURRENCY"])) {
$select[$_COOKIE["BX_CURRENCY"]] = 'selected';
}
?>
<form method="post">
<select class="form-control form-control-sm d-sm-none d-md-block" name="select" onchange="this.form.submit()">
<option value="RUB" <?=$select['RUB']?>>RUB</option>
<option value="USD" <?=$select['USD']?>>USD</option>
</select>
</form>
Далее есть некая таблица где нужно вывести значения в зависимости от выбора в селекторе, или если их нет в $_COOKIE то показываем дефолтное значение, если в $_COOKIE есть запись то выводим из него.
if ($_POST['select']=="RUB") {
echo $arItem["PRICES"]["Base"]["PRINT_VALUE"];
}elseif ($_POST['select']=="USD") {
echo "$ ".round(CCurrencyRates::ConvertCurrency($val, "RUB", "USD"), 2);
И тут пришел тупик, POST срабатывает нормально, добавляю обработку $_COOKIE начинают выводиться повторные значения ,если ставлю дефолтное значение так
if ($_POST['select']=="") {
echo $arItem["PRICES"]["Base"]["PRINT_VALUE"];
}
Оно срабатывает но при выборе в селекторе POST задваиваются значения так как для вывода $_COOKIE нужно обновление страницы...
Пробовал через switch\case ,тоже не вариант...