yii2-multiple-input

Выкладываем свои наработки
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: yii2-multiple-input

Сообщение ElisDN »

Код

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

foreach (array_keys($data) as $index) {
     $models[$index] = new Item();
}
как раз и создаёт новые. Главное в форме на JavaScript добавление строк с полями ввода реализовать.
novoselov
Сообщения: 36
Зарегистрирован: 2015.04.18, 15:11

Re: yii2-multiple-input

Сообщение novoselov »

Дмитрий, да, это понимаю.

Но этот код создаст новые записи, потом в них загружаем Moodel::loadMultiple($models, Yii::$app->request->post()), но как быть с записями которые нужно обновить?
Аватара пользователя
webplus
Сообщения: 336
Зарегистрирован: 2012.02.24, 22:05

Re: yii2-multiple-input

Сообщение webplus »

Здравствуйте!
В этом примере: Изображение идут input-ы в ряд, а в строку можно выводить их.
Например мне надо: первая строка - инпут заглавия, вторая строка два инпута даты от и до и третья строка инпут описание. Такое возможно сделать?
Сайт по работе в Украине: https://jobis.com.ua/. Сайт по поиску строителей: https://stroyzakaz.com.ua/
Создание сайтов в Киеве: https://webplus.com.ua/ по доступной цене.
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: yii2-multiple-input

Сообщение Loveorigami »

Посмотреть исходник, не?
https://github.com/unclead/yii2-multipl ... t.php#L118

Далее делаете, как Вам нужно, по аналогии

https://github.com/unclead/yii2-multipl ... nderer.php или
https://github.com/unclead/yii2-multipl ... nderer.php
alexa777
Сообщения: 299
Зарегистрирован: 2016.03.01, 17:38

Re: yii2-multiple-input

Сообщение alexa777 »

unclead писал(а): 2017.03.18, 12:58
Пытаюсь вставить плагин \kartik\select2\Select2

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

  <?php

        echo $form->field($model, 'items')->widget(MultipleInput::className(), [

            'columns' => [
                [
                    'name' => 'slide',
                    'type' => \kartik\select2\Select2::className(),
                    'options' => [
                        'options' => ['placeholder' => 'Поиск  ...'],
//                       'initValueText' => empty($model->items) ? '' : Item::findOne($model->items)->title,
                       'pluginOptions' => [   
                            'allowClear' => true,
                            'minimumInputLength' => 3,
                            'language' => 'ru',
                            'ajax' => [
                                'url' => \yii\helpers\Url::to(['item-list']),
                                'dataType' => 'json',
                                'data' => new JsExpression('function(params) { return {q:params.term}; }')
                            ],
                            'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
                            'templateResult' => new JsExpression('function(item_id) { return item_id.text; }'),
                            'templateSelection' => new JsExpression('function (item_id) { return item_id.text; }'),
                        ],
                    ],
                ],
      
            ]
        ])->label(false);
        ?>
1) Почему то сохраняет пустые значения

2) После сохранения, не показывает сохраненные поля

Сделал для этого в модели

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

    public $items;
    public function init()
    {
        parent::init();

        $title = [];
        foreach ($this->itemall as $item){

           $title[]['slide'] =  empty($item['item_id']) ? '' : Item::findOne($item['item_id'])->title;
 
        }

        $this->items = $title;

    }

    public function getItemAll()
    {
        return self::find()->orderBy(['id' => SORT_ASC])->asArray()->all();
    }

И вроде работает но это инвалид, так как 1 проблема так и осталась(сохраняет пустые поля)

И второе я в базе получаю массив из id и в public function init() в модели ищу по ним названия а потом массивом передаю в public $items

А хотелось бы передавать массив из id шников в саму форму виджета чтобы принимал id и искал title сам

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

  'initValueText' => empty($model->items) ? '' : Item::findOne($model->items)->title,

Но нечего не выходит так как $model->items содержит массив

Что посоветуете?
Barkov
Сообщения: 96
Зарегистрирован: 2011.10.08, 13:23
Откуда: Симферополь

Re: yii2-multiple-input

Сообщение Barkov »

Здравствуйте. Хорошее расширение, спасибо. Подскажите, при сохранении пустой формы в модель попадают значения "name" . Хотелось бы чтобы при сохранении пустой формы виджета ничего не попадало в базу. Где поправить?
eXeCUT
Сообщения: 12
Зарегистрирован: 2016.05.30, 17:48

Re: yii2-multiple-input

Сообщение eXeCUT »

unclead, спасибо за виджет, действительно мощная штука! Использую его в своём расширении вместе с yii2-save-relations-behavior как инструмент для работы со вложенными формами связанных записей execut\crudFields\fields\HasManyMultipleInput.

Самый интересный пример использования получился в execut/yii2-import вышла прикольная матрёшка в форме =) С помощью yii2-multiple-input объединил в одной форме сразу три раздела админки! Изображение
Последний раз редактировалось eXeCUT 2020.09.01, 15:43, всего редактировалось 1 раз.
eXeCUT
Сообщения: 12
Зарегистрирован: 2016.05.30, 17:48

Re: yii2-multiple-input

Сообщение eXeCUT »

Barkov писал(а): 2019.11.11, 23:25 Здравствуйте. Хорошее расширение, спасибо. Подскажите, при сохранении пустой формы в модель попадают значения "name" . Хотелось бы чтобы при сохранении пустой формы виджета ничего не попадало в базу. Где поправить?
В модели при загрузке данных в методе load можете фильтровать загружаемые данные и name не будет попадать туда. В виджете вроде нельзя отключать передачу пустых значений, если не заполнена строчка. Это нужно чтобы провалидировать все значения формы на стороне сервера.
kaun
Сообщения: 6
Зарегистрирован: 2017.08.02, 18:03

Re: yii2-multiple-input

Сообщение kaun »

Привет! Пытаюсь засунуть виджет в форму, которая находится в модальном окне, в итоге не реагирует на "удалить", "добавить строку" и пр, но если располагать на странице (не в модальном окне), то всё в порядке. Как то нужно инициализировать или в чём дело? В консоли никаких ошибок нет
Ответить