Форум программистов, компьютерный форум, киберфорум
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
2 / 2 / 1
Регистрация: 17.12.2017
Сообщений: 39
1

Хочу разобраться с выпадающим списком

17.12.2017, 15:10. Показов 1740. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем доброго дня и хорошего настроения. У меня такая задача:
Есть несколько контроллеров и представлений. Для каждого контроллера используется свой шаблон, но главное меню у всех одно. Его я вынес в виджет и вставляю в каждый шаблон. В этом меню я и хочу добавить что-то, чтобы позволило реализовать следующее:
Есть доп. поле active_city_id в таблице users, в котором храниться id текущего города. Надо реализовать либо меню, либо выпадающий список который позволил бы зарегистрированному пользователю менять текущий город, оставаясь на той же странице сайта. Подумал реализовать через dropdown меню, к примеру вывести список доступных городов, но что указывать в ссылках каждого пункта они все одинаковые получаются, только id разное, которое надо запомнить. Как мне изменить поле active_city_id текущего юзера на то, что он выбрал без перехода на другую страницу?
Второй вариант сделать простым списком, но при вставке в виджет главного меню, yii2 ругается на $model

PHP
1
2
3
4
5
6
7
8
9
10
$form = ActiveForm::begin(); 
echo $form->field($model, 'dropdownList')
    ->dropDownList([
        '1' => 'Город 1',
        '2' => 'Город 2',
        '3' => 'Город 3',
    ]);
echo Html::submitButton('Send', ['class' => 'btn btn-success']) 
 
ActiveForm::end()
почему? ведь $model - это я понимаю текущая модель? Или он в шаблоне еще ее не знает? Всю голову сломал. Подскажите, плиз, направьте на путь правильный.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2017, 15:10
Ответы с готовыми решениями:

Yii поле с выпадающим списком и с возможностью ввода с клавиатуры
Подскажите, как сделать в форме поле с выпадающим списком и с возможностью ввода с клавиатуры. Как...

Функции с выпадающим списком
Есть база mysql "users" CREATE TABLE IF NOT EXISTS `users` ( `userid` int(25) NOT NULL...

Кнопка с выпадающим списком
Здравствуйте! Как сделать так чтоб при нажатии на кнопку "сомандбаттон", либо подгружалась форма с...

Запрос с выпадающим списком
Добырый день! Подскажите как можно создать запрос с выпадающим списком? Например есть список...

4
ytf
276 / 259 / 185
Регистрация: 15.08.2017
Сообщений: 1,483
18.12.2017, 12:27 2
если у тебя не получается программировать на yii, программируй без yii
0
Особый статус
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
18.12.2017, 19:39 3
Цитата Сообщение от Саня-нн Посмотреть сообщение
без перехода на другую страницу?
pajax

Цитата Сообщение от Саня-нн Посмотреть сообщение
Второй вариант сделать простым списком, но при вставке в виджет главного меню, yii2 ругается на $model
Как ругается, я так понимаю, если это шаблон, точнее ее часть то она подгружается раньше контента?
1
2 / 2 / 1
Регистрация: 17.12.2017
Сообщений: 39
18.12.2017, 23:09  [ТС] 4
сделал с помощью pjax, но теперь обновляется только со второго раза. Уже закипел.
вот шаблон mainmenu:
.....//там всякие подключения use, их я пропустил

Pjax::begin();
... тут выкинул кусок, т.к. тут получение параметров для запроса
....и заполнение текущей фирмы в переменной $firma

$query=(new \yii\db\Query());
$mymodel=$query->select('id, firmname')->from('spr_firms')->where('adminid=:id', [':id' => $adminid])-
>orderBy('firmname')->all();

if ($mymodel) {
$menuItemsFirmdown =[];
//формирование подменю
foreach ($mymodel as $m){
$menuItemsFirmdown[]=['label' => $m['firmname'], 'url'=>Yii::$app->urlManager->createUrl(['/setcurrfirma/setactivefirm', 'id' => $m['id']])];
}
//формирование выпадающего списка меню, где $firma - это текущая фирма, ее и надо изменить
$menuItemsFirm=[
['label' => $firma,
'items' => $menuItemsFirmdown,
]
];

echo Nav::widget([
'options' => ['class' => 'navbar-nav navbar-left'],
'items' => $menuItemsFirm,
]);

}
Pjax::end();

мне надо чтоб обновилось название текущей фирмы, которое находится в label выпадающего списка (см. выше комментарий)

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

class SetcurrfirmaController extends Controller
{

public function actionSetactivefirm($id) {

if(Spr_firms::ChangeCurrFirm($id)) {
return $this->render('setcurrfirma', ['firma' => spr_firms::getFirmname($id)]);
}
throw new NotFoundHttpException(Yii::t('app','The requested page does not exist.') );
}

}

при render он хочет найти setcurrfirma во views. Создал там файл
<?php $request = Yii::$app->request;
$id = $request->get('firma');
echo $firma; ?>

на самом деле даже если там ничего не писать, все равно ничего не меняется.
Выбирая фирму из выпадающего списка, вижу, что в базе значение меняется, но такое ощущение, что setcurrfirma не рендерится. Причем строка браузера меняется на frontend/web/index.php?r=setcurrfirma%2Fsetactivefirm&id=5
и если строку обновить, то в окне появляется та самая фирма, т.е. код
<?php $request = Yii::$app->request;
$id = $request->get('firma');
echo $firma; ?>
работает. Что я не понимаю?
Вообще в идеале ссылка в браузере вообще не должна меняться при смене фирмы.

Добавлено через 11 минут
кстати нашел что url опционально, отключил ['enablePushState' => false] в опциях, сейчас url не меняется.
но и label тоже
0
2 / 2 / 1
Регистрация: 17.12.2017
Сообщений: 39
20.12.2017, 23:08  [ТС] 5
Разобрался, оказывается надо указывать id
$pjax_id = 'pjax-firma';
Pjax::begin(['enablePushState' => false, 'id'=>$pjax_id,]);

причем в setcurrfirma тоже, и тут же перепостроил список.
0
20.12.2017, 23:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.12.2017, 23:08
Помогаю со студенческими работами здесь

DBGrid с выпадающим списком
Здравствуйте! Необходимо реализовать выпадающий список в поле вторичного ключа DBGrid. Использую...

Кнопка с выпадающим списком
Здравствуйте возник такой вопрос. как сделать кнопку с выпадающим списком. точнее как overflow в...

Проблема с выпадающим списком
&lt;select name='mymenu'&gt; &lt;form name='form'&gt; &lt;select name='mymenu' &gt; &lt;option...

Проблема с выпадающим списком
Может кто подскажет как решить проблему. Нужно с базы данных SQL вставть записи в выпадающий...

Работа с выпадающим списком
Помогите пожалуйста!! у меня есть выпадающий список в котором отображаются электронные весы, с...

Кнопка с выпадающим списком
Имеется ли на VBA возможность создать кнопку с выпадающим списком, т.е. нажимаешь на кнопку и под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru