Задать вопрос
@FernandoErrNando

Yii2 как правильно интернационализировать DateControl/DatePicker при работе с RenderAjax или правильная передача параметров?

Здравствуйте, уважаемые коллеги. Имеется проблема:
1. Есть страница, на ней вызывается форма в модальном окне после нажатия на кнопку. Форма содержит поле для ввода дат с компонентом DateControl (или DatePicker, в данном случае не важно).
Проблема: При нажатии на кнопку страница с формой загружается в модальное окно, но DatePicker в подгрузившейся форме не руссифицирован.
При вызове страницы напрямую - датаПикер с правильными региональными настройками (т.е. первый день - понедельник, руссифицирован и т.д.).
Что я делаю не так? По идее метод renderAjax() должен отрисовать подключаемый view со всеми стилями/скриптами на запрос, но у меня такое ощущение что этого не происходит, либо теряются некоторые параметры
Контроллер:
public function actionIndex()
{
...
}

public function actionCreatemodalsuperform()
    {
        $model = new mysuperForm();
        $post=\Yii::$app->request->post();
        if ($post) 
        {
           ...
        }
        else {
                return $this->renderAjax('createmodalsuperform', [
                    'model' => $model,
                ]);
            }
    }


Страница вызова формы через Ajax
views\index.php
...
$this->registerJs('
$(function(){
    $("#createModalSuperformButton").click(function(){
        $("#createNewModalSuperform").modal("show").find("#modalSuperform").load($(this).attr("value"));
    });
});
', yii\web\View::POS_END);
?>
...
 <?= Html::button('<span class="glyphicon glyphicon-plus" aria-hidden="true"></span>',
       [
        'value'=>Url::to('/fund/createsuperform'),
       'class' => 'btn buttonaddfund btn-earning text-center buttonblock',
       'id' => 'createModalSuperformButton'
       ]) ?>
                
                <?php
                    Modal::begin([
                     'id' => 'createNewFundEarningModal',
                     'size'=>'modal-xs',
                    ]);
                    echo "<div id='modalContentEarning'></div>";
                    Modal::end();
                ?>

Страница c формой
views\createmodalsuperform.php
	<?php
...
use yii\widgets\ActiveForm;
use kartik\datecontrol\DateControl;

?> 

<div class="super-form">

    <?php $form = ActiveForm::begin( ['options' => ['enctype' => 'multipart/form-data']]); ?>
....
        <?= $form->field($model, 'date_created')->widget(FixedDateControl::classname(), [
        'type'=>DateControl::FORMAT_DATE,
        'ajaxConversion'=>true, 
        'language' => 'ru',

        'options' => [
            'class' => 'pull-right',
            'pluginOptions' => [
                'autoclose' => true,

            ],
            'removeButton' => false,
        ],
        'saveTimezone' => 'UTC',
        'displayTimezone' => 'UTC',

        ])->label(false);?>
....    
    <?php ActiveForm::end(); ?>

</div>
  • Вопрос задан
  • 303 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы