Значение cookie в select value

245
26 августа 2017, 01:47

Имеется следующая форма

    <form action="" method="post">
            <select name="city" id="city" class="city" onchange="this.form.submit()">
            <option value="archangelsk">Архангельск</option>
            <option value="msk">Москва</option>
       </select>                        
    </form>

при отправке которой я хочу выставить значение соответствующей куки, делаю это так

 if (isset($_POST['city'])) {
        setcookie('rio_city', $_POST['city'], time()+604800);
    }
//выставим значение, если не установлено
    if (!isset($_COOKIE['rio_city'])) {
        setcookie('rio_city', 'msk', time()+604800);
        $current_city = $_COOKIE['rio_city'];
    }

и выставить это значение, как текущее в тот самый select, вот так:

<script>
    $(".city").val('<?php echo $_COOKIE['rio_city']; ?>');
</script>

Сайт на Wordpress. Форма в header, код про куки - в functions.php, скрипт в footer. Все, вроде бы, работает, но, для того, чтобы значение подставилось в select, после отправки формы(страница при этом перезагружается) нужно перезагружать страницу вручную еще раз. Думаю, проблема в чем-то простом, но додуматься сам не могу. Работает вот здесь.

Answer 1

Куки работают с заголовками, поэтому устанавливать их надо до того, как будет произведен какой-либо вывод на экран. Для WP рекомендуют устанавливать куки через действие init:

add_action( 'init', 'setting_my_cookie' );
READ ALSO
Парсинг XML из 1С в PHP

Парсинг XML из 1С в PHP

Подскажите пожалуйста как в php обработать xml из 1С сохраненную при обмене с сайтом(на русском

281
В массив вставляется пустой элемент

В массив вставляется пустой элемент

ПриветОтправляю с клиента данные на обработку к PHP:

281
Не работает curl на php (win)

Не работает curl на php (win)

Потерял собственный php pack с настроенными всеми либами для написание скриптов (речь о win version)

193
Apache не отображает ошибки в браузере

Apache не отображает ошибки в браузере

Установил LAMPЕсли кто не знает - Linux + Apache + MySQL + PHP

231