Очистка формы при перезагрузке страницы средствами PHP

Статус
В этой теме нельзя размещать новые ответы.

funnywheel

PHP & JS
Регистрация
6 Авг 2010
Сообщения
255
Реакции
219
Ситуёвина:

1. Проверяется GeoIP юзера
2. В зависимости от города определяется несколько переменных, которые выводятся в верстку (телефон, адрес и др. - не суть важно)
3. Генерится селект со списком городов, с указанным атрибутом selected для option'a с определенным ранее городом. (селект служит для возможности вручную выбрать город)

Трабл:
1. Если выбрать город вручную, после чего перезагрузить страницу - значение select'a после перезагрузки остается прежним (кэшируется гдето или хз как это работает, всегда раньше сбрасывал при помощи jQuery и не заморачивался).
2. Остальные мои данные выводятся, естественно, для города, который определяется через геоип.

Вопрос:
Как сбросить select при загрузке страницы средствами php? А если у кого-то просвященного будет достаточно времени, то хотелось-бы узнать, где и какого черта это значение вообще хранится.
 
Скорее всего это куки. Данные сохраняются в браузере. Тебе нужно установить либо короткое время либо удалить.
 
Скорее всего это куки
Вроде-бы нет. В Firefox в "Настройки->Приватность->Удалить отдельные куки" нет никаких упоминаний. Точнее куки есть, но не те, авторизации всякие, гугл аналитикс и тд.
Ничего связанного с формами я там не вижу.

На jQuery сброс input'ов, select'ов и других элементов формы производится методом .reset(), выглядит как-то так:
Код:
$('#formid').reset();

Вот мне нужен аналог, только на PHP.
 
Можно перефразировать вопрос.
Я чо то написал или стырил и не пойму как работает...
Вы мне объясните, потому как я хер знает, но кода нет.
Аналог очистки форм: type reset
Код покажите, а то флудобред
 
Может в localstorage сохраняться, а так хз. Ничего не понятно, был бы исходник
 
Код покажите, а то флудобред
Забавно, думал расписал достаточно понятно. Сейчас перефразирую:

Есть лендинг. К нему подключен GeoIP скриптец, вот код:
PHP:
  require_once './SxGeo.php';
  $ip = $_SERVER['REMOTE_ADDR'];
   $SxGeo = new SxGeo('SxGeoCity.dat');
   $city = $SxGeo->get($ip);
   $cityName = ($city['city']['name_en']);

В зависимости от определенного города, который получаю в $cityName отрабатывает switch:
PHP:
switch ($cityName) {
    case "Moscow":
       $citylilst =  ''
             . '<option value="Москва" selected="" >Москва</option>'
//           список option'ов
             . '<option value="Нижний Новгород">Нижний Новгород</option>';
       $phone = 'номер телефона';
       $addr = 'адрес';
       $c_city = 'Москва';
       $map = 'карта';
       break;
//     остальные case'ы, default по аналогии
}

Далее в верстку выводится в селекты:
PHP:
<?php echo $cityList; ?>

и соответственно остальные переменные.

Теперь вопрос
Если мы заходим с IP из МСК - скрипт нормально отрабатывает, все соответствующие значения выводятся.

Но, если мы вручную изменяем значение select'a, например на Нижний Новгород, после перезагрузки страницы значение select'a остается "нижний новгород", а все переменные выводятся, как и должны, для Москвы.

Как сбросить данные формы, которые указал пользователь при перезагрузке (загрузке) страницы на php, т.к. если сбросить их на JS - потеряю то, что сгенерил switch.
 
Полагаю что причина в браузере.
<select autocomplete="off" ... >
 
Последнее редактирование:
Полагаю что причина в браузере.
<select autocomplete="off" ... >
увы, не то... автокомплит ведь несет несколько другую задачу, подставляет значения в текстовые инпуты, которые вводились на этом/других сайтах в поля, имеющие точно такой атрибут name

Зато обнаружил, что перезагрузка со сбросом кэша, по [ctrl]+[f5], сбрасывает сохраненное значение.
Может есть вариант, когда юзер перезагружает страничку, делать перезагрузку с кэшем? графики на странице не очень много, не думаю что пойдет значительно в ущерб производительности.

UPD: таки да, нашел
PHP:
header("Cache-Control: no-cache, must-revalidate");

UPD2: если у селекта не указано
HTML:
autocomplete="off"

то и заголовок с no-cache не срабатывает
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху