Pjax + Editable widget. 2 проблемы у новичка

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
terrarium volition
Сообщения: 99
Зарегистрирован: 2021.07.15, 21:22

Pjax + Editable widget. 2 проблемы у новичка

Сообщение terrarium volition »

Всем доброго времени суток!

Я новичок в yii2, поэтому не ругайтесь на мои вопросы. :roll:
Не могу разобраться, как правильно сделать следующую вещь:

Управлять количеством полей виджета "Editable" от kartik во view при помощи кнопок "+" , "- " и Pjax.
Появляются сразу два непонятных мне момента:

1. Если я оборачиваю код в Pjax, то роутинг у виджета "Editable" не работает как надо, и вместо POST запроса всегда GET.
Причём, маршрут идёт на этот же action, с которого выводилась страница, а не на тот, который я указал в виджете, чтобы обработать данные.
При этом роутинг кнопок "+" , "- " с Pjax работает как надо, и я могу прибавлять/убавлять виджет на view.
Но тут возникает уже вторая проблема:
2. После отработки Pjax для кнопок(хоть убавил хоть прибавил виджет), поле виджета Editable уже не появляется при клике на него, и я не могу ввести туда текст, плагин как бы замораживается, становится неактивным.

Если я выношу Editable из под Pjax, то роутинг виджета работает как надо(нужный action и метод POST), и я могу вводить и сохранять текст в модель.
Но тогда, очевидно, я не могу динамически изменять кол-во полей Editable во view.

Ниже приведу фрагмент кода view:

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

				<?php Pjax::begin(['enablePushState' => false, 'clientOptions' => ['method' => 'POST']]); ?>
                                    <?php   $form = ActiveForm::begin(['id' => 'online-form',
                                                'options' => [
                                                        'class' => 'form-horizontal',
                                                        'data-pjax' => true,
                                            ],]);
                                    ?>

                                    <div class="col-md-2 col-sm-2 col-xs-6 tile_info">
                                    <?= Html::a('', ['site/upvote'], ['class' => 'add-room btn btn-success btn-xs glyphicon glyphicon-plus']) ?>
                                    <?= Html::a('', ['site/downvote'], ['class' => 'add-room btn btn-success btn-xs glyphicon glyphicon-minus']) ?>
                                    
                                    </div>

                                    <?php

                                    // for start
                                        for($i = 1; $i <= Yii::$app->session->get('votes',1); $i++){
                                                                                      
                                    ?>

                                    <div class="col-md-2 col-sm-6 col-xs-6 tile_info">
                                        <?= Editable::widget([
                                                'name'      =>  'timername', 
                                                'asPopover' =>  true,
                                                'formOptions' => [
                                                      'action' => Url::toRoute(['/site/editabledatas', 'id' => 3]),
                                                ],
                                                'inputType' => Editable::INPUT_TEXTAREA,
                                                ]);
                                        ?>

				<?php
                                    // for end
                                        } ?>
                                        
                                   <?php ActiveForm::end(); ?>
                                   <?php Pjax::end(); ?>
Помогите, пожалуйста, разобраться, куда копать, что нужно настроить, чтобы подружить виджет и Pjax и как избежать "заморозки" плагина:?

Заранее спасибо всем неравнодушным!
terrarium volition
Сообщения: 99
Зарегистрирован: 2021.07.15, 21:22

Re: Pjax + Editable widget. 2 проблемы у новичка

Сообщение terrarium volition »

Разобрался.

Нужно было:
1)Pjax запихнуть внутрь ActiveForm, а не снаружи ставить.
2) popOver сделать false ,чтобы после Pjax Editable не замораживался.
Видимо это был глюк именно popOver`a

Спасибо за внимание. ;)
Ответить