Select2 подгрузка другой модели

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
andriel
Сообщения: 43
Зарегистрирован: 2017.12.05, 17:32

Select2 подгрузка другой модели

Сообщение andriel »

Привет всем форумчанам!
Вопрос вот в чём. Менеджер создаёт пользователя через модель Client ( у пользователя создаётся уникальный name, email, привязывается к менеджеру ).

Также есть модель для создания заказа Order. В неё надо втулить id клиента. В форме создания заказа используется Select2, который выводит список всех созданных менеджером клиентов.

Код: Выделить всё

<?= $form->field($model, 'client_id')->widget(Select2::className(), [
        'data' => ArrayHelper::map($clients, 'id', 'client_name'),
        'options' => [
            'placeholder' => 'Выберите Пользователя'
        ],
    ]) ?>
Как расширить select2, чтобы если нет пользователя менеджеру не приходилось переходить в раздел клиентов, создавать нового клиента, а потом выбирать его в заказе. Хочется чтобы сразу подтянулась форма создания клиента, со всеми валидациями, которые прописаны в Cient модели
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Select2 подгрузка другой модели

Сообщение Alexum »

Можно добавить кнопку добавления клиента в форму, по которой открывать модальное окно с формой нового клиента. После добавления клиента обновлять содержимое окна заказа. https://yiiframework.ru/forum/viewtopic ... st#p218854 вот тут приводил пример, как при выборе в одном селекте обновлять содержимое другого через Ajax. Вы можете сделать также, только JS обновления вашего selectа дёргайте после успешного добавления клиента и сразу выбирайте нужного.
Аватара пользователя
andriel
Сообщения: 43
Зарегистрирован: 2017.12.05, 17:32

Re: Select2 подгрузка другой модели

Сообщение andriel »

Alexum писал(а): 2018.04.24, 09:08 Можно добавить кнопку добавления клиента в форму, по которой открывать модальное окно с формой нового клиента. После добавления клиента обновлять содержимое окна заказа. https://yiiframework.ru/forum/viewtopic ... st#p218854 вот тут приводил пример, как при выборе в одном селекте обновлять содержимое другого через Ajax. Вы можете сделать также, только JS обновления вашего selectа дёргайте после успешного добавления клиента и сразу выбирайте нужного.
спасибо конечно. Я понимаю как это сделать на теории. Но на практике хотелось бы поточнее знать какой модуль/виджет использовать для модалки. Примеры кода увидеть
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Select2 подгрузка другой модели

Сообщение Alexum »

В своё время помогли эти ролики:
Добавляем модальное окно: https://www.youtube.com/watch?v=aUAUsAD ... F&index=23
Делаем AJAX-валидацию: https://www.youtube.com/watch?v=URhvUwe ... F&index=46
Сабмитим через AJAX и перезагружаем PJAX контейнер с GridView: https://www.youtube.com/watch?v=ZhblqEROLWo

Сейчас можно найти готовые расширения для модалек, н-р:

https://github.com/loveorigami/yii2-modal-ajax
Аватара пользователя
andriel
Сообщения: 43
Зарегистрирован: 2017.12.05, 17:32

Re: Select2 подгрузка другой модели

Сообщение andriel »

Alexum писал(а): 2018.04.24, 12:44 В своё время помогли эти ролики:
Добавляем модальное окно: https://www.youtube.com/watch?v=aUAUsAD ... F&index=23
Делаем AJAX-валидацию: https://www.youtube.com/watch?v=URhvUwe ... F&index=46
Сабмитим через AJAX и перезагружаем PJAX контейнер с GridView: https://www.youtube.com/watch?v=ZhblqEROLWo

Сейчас можно найти готовые расширения для модалек, н-р:

https://github.com/loveorigami/yii2-modal-ajax
Спасибо огромное! Буду разбираться
Ответить