Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> DropDownList
yintar  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 76
Пользователь №: 39357
На форуме: 2 года, 8 месяцев
Карма:




Как сохранять выбранное в dropDowmList значение при переходе на другую страницу или перезагрузке страницы
Например ,у меня в dropDowmList выводятся города пользователей из БД


<?php $form = ActiveForm::begin(['id' => 'master-serch-form']); ?>

<?=
$form->field($modelUser, 'city')->label('')->dropDownList(yii\helpers\ArrayHelper::map($cities,'city','city'),['prompt' => 'Выберите город']); ?>
<?=
Html::submitButton('Выбрать', ['class' => 'btn btn-info btn-block btn-lg', 'name' => 'data-user-button']) ?>
<?php
ActiveForm::end(); ?>

и в контроллере

$modelUser = new User;
$cities = User::find()->asArray()->distinct()->where(['type' => 2])->all();
if ($modelUser->load(Yii::$app->request->post())) {
$city = $_POST['User']['city'];
}


т.е как сделать ,если пользователь один раз выбрал город то при переходе на другую страницу или перезагрузке выбранный город сохранялся пока пользователь не выберет другой.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5911
Пользователь №: 1
На форуме: 10 лет, 10 месяцев, 3 дня
Карма: 125

Не пью :
22 года, 3 месяца, 3 дня


В куках?


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
yintar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 76
Пользователь №: 39357
На форуме: 2 года, 8 месяцев
Карма:




а как это реализовать в yii, можете пример привести
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14980
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 4 дня
Карма: 444




Общий ответ - надо где-то хранить этот выбор wink.gif

Я бы лучше хранил в браузере, в localStorage. При загрузке страницы запускаем скрипт JS, который при наличии на странице нужного дроп-даун листа и при наличии записи в локал-сторедж устанавливает значение этого дроп-даун листа в нужную величину. Что важно, это решение совершенно не зависит от наличия какого бы то ни было фреймворка. И при этом не требуется ничего хранить на сервере, что вполне логично, т.к. касается только пользовательского интерфейса.

Храниние любых данных в куках - это зло!!! Потому что куки отправляются на сервер каждый раз, при любом запросе. В т.ч. при аяксовых запросах. Лишние данные - лишний трафик.

Заодно напомню, что localStorage можно использовать для обмена информацией между страницами одного сайта, одновременно открытыми в браузере. Естественно, что не автоматически, а немного кода JS надо написать. Когда юзер что-то выбрал на одной странице, мы можем то же самое установить на другой странице.
Предположим, юзер может менять стиль оформления. Сменил на одной странице - мы это принудительно меняем на другой странице.
Или когда получены какие-то данные аяксом, мы можем расшарить эти данные между всеми открытыми страницами сайта, не делая лишних аяксовых запросов. Например, какая-нибудь нотификация пришла - мы её отправим и покажем на всех страницах.

Это сообщение отредактировал sergeiss - 19.09.2016 - 23:51


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
yintar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 76
Пользователь №: 39357
На форуме: 2 года, 8 месяцев
Карма:




sergeiss я с localStorage никогда не работал, можете хоть какой-то пример показать или ссылку двть где это понятно написано
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14980
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 4 дня
Карма: 444




yintar, первая же ссылка в гугле: http://htmlbook.ru/html5/storage, вторая ссылка http://www.w3schools.com/html/html5_webstorage.asp

По обеим ссылкам всё описано достаточно доходчиво и полноценно.

Это сообщение отредактировал sergeiss - 20.09.2016 - 00:03


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
yintar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 76
Пользователь №: 39357
На форуме: 2 года, 8 месяцев
Карма:




спасибо
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
yintar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 76
Пользователь №: 39357
На форуме: 2 года, 8 месяцев
Карма:




sergeiss почитал,понятно, значение установил, но не пойму как мне его использовать дальше, в выпадающем списке выбирается город кот мне и надо запомнить .как это сделать. ведь мне надо как-то выставить selected у опции списка?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14980
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 4 дня
Карма: 444




Цитата (yintar @ 20.09.2016 - 00:18)
но не пойму как мне его использовать дальше, в выпадающем списке выбирается город кот мне и надо запомнить .как это сделать. ведь мне надо как-то выставить selected у опции списка?

После загрузки страницы надо запустить скрипт JS, который это сделает. Это можно сделать как на "чистом" JS, так и можно использовать jQuery, если он уже используется на сайте.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5911
Пользователь №: 1
На форуме: 10 лет, 10 месяцев, 3 дня
Карма: 125

Не пью :
22 года, 3 месяца, 3 дня


Цитата (sergeiss @ 19.09.2016 - 23:49)
Лишние данные - лишний трафик.

Имя поля и айдишник - десяток байт. На пару порядков меньше, чем код джаваскрипт.
Даже на модеме прошлого века - несколько милисекунд задержки. На несколько порядков меньше, чем задержка по времени на джаваскрипт, работающий с локальным хранилищем, скролящий дропдаун...


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14980
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 4 дня
Карма: 444




FatCat, тут дело даже не в трафике, на самом деле, хотя и в нем тоже smile.gif А в том, что если мы делаем всё "правильно", то эту задачу надо возлагать именно на клиентскую сторону.
Иначе получается парадокс. С одной стороны, на серверной стороне используется фреймворк. Программист следит за разделением прав согласно MVC. Но тут же делает кашу, возлагая на сервер функции, относящиеся к клиентской стороне. Да еще забивая куки всяким хламом, который там не нужен. И нагрузка на сервер хоть немного, но увеличивается. При большом количестве юзеров это тоже может стать значимым.
Цитата (FatCat @ 20.09.2016 - 01:40)
Имя поля и айдишник - десяток байт. На пару порядков меньше, чем код джаваскрипт.

На сервере тоже какой-то код надо писать, а не только данные передать. Какой из них будет больше по объему, еще не известно. Так что такого критерия, по сути дела, нету.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5911
Пользователь №: 1
На форуме: 10 лет, 10 месяцев, 3 дня
Карма: 125

Не пью :
22 года, 3 месяца, 3 дня


Цитата (sergeiss @ 20.09.2016 - 13:12)
если мы делаем всё "правильно"

Я понимаю о чем ты.

Знаешь байку, как Рокфеллер заказывал индивидуальный проект лимузина?
Конструктры Форда просчитали пожелания заказчика и вынесли вердикт: невозможно, ибо при заданной прочности вес машины будет намного больше заказанного. Тогда Рокфеллер обратился к конструкторам Боинга, и получил вердикт: возможно, но чтобы получить желаемый вес лимузина придется к днищу приварить балластный металл.

Как ты говоришь, оно будет правильно ездить. Я же о том, чтобы летало.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14980
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев, 4 дня
Карма: 444




Цитата (FatCat @ 20.09.2016 - 14:49)
Как ты говоришь, оно будет правильно ездить. Я же о том, чтобы летало.

Как раз "чтобы летало", в данном случае надо делать на клиентской стороне... Либо вообще не заморачиваться всякими там MVC, а лепить так, как получится smile.gif


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5911
Пользователь №: 1
На форуме: 10 лет, 10 месяцев, 3 дня
Карма: 125

Не пью :
22 года, 3 месяца, 3 дня


Цитата (sergeiss @ 20.09.2016 - 15:03)
Либо вообще не заморачиваться всякими там MVC

Да, согласен.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8739
Пользователь №: 26630
На форуме: 5 лет, 9 месяцев, 8 дней
Карма: 591




Цитата (FatCat @ 20.09.2016 - 01:40)
Имя поля и айдишник - десяток байт. На пару порядков меньше, чем код джаваскрипт.

Неправильно считаешь, десяток байт это только в одном запросе, а для загрузки одной страницы браузер их отправляет десятки! К примеру для загрузки этой страницы форума, потребовалось больше сотни запросов, так что нужно этот объём умножать на количество таких запросов, а потом на количество переходов по страницам. Чем больше юзер ходит по сайту, тем больше левого трафика. Джаваскрипт же будет загружен один раз, и потом браться из кеша.
Хотя конечно это всё пшик на фоне остального трафика, но всё же нет никакого смысла миллион раз передавать на сервер одни и те же данные, которые ему совершенно не нужны, тут я полностью согласен с Сергеем.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса