Выбор даты и времени Yii2 kartik сохраняет значение после отправки страницы - PullRequest
1 голос
/ 23 апреля 2020

Я использую yii2-widget-datetimepicker в моем yii2 проекте. Я хочу сохранить это значение после отправки страницы.

<form action="index" method="post" >


<?=
                DateTimePicker::widget([
                    'name' => 'datetime_10',
                    'options' => [
                            'placeholder' => 'Start Date Time',
                            'autocomplete' => 'off',
                        'required' =>true,
                            ],
                    'convertFormat' => false,
                    'pluginOptions' => [
                        'format' => 'yyyy-mm-dd hh:i:ss',
                        //'startDate' => '01-Mar-2014 12:00 AM',
                        'todayHighlight' => true,
                        'autoclose' => true,
                    ]
                ]);
                ?>
                <?=
                DateTimePicker::widget([
                    'name' => 'datetime_11',
                    'options' => [
                            'placeholder' => 'End Date Time',
                            'autocomplete' => 'off',
                            'required' =>true,
                            ],
                    'convertFormat' => false,
                    'pluginOptions' => [
                        'format' => 'yyyy-mm-dd hh:i:ss',
                        //'startDate' => '01-Mar-2014 12:00 AM',
                        'todayHighlight' => true,
                        'autoclose' => true,
                    ]
                ]);
                ?>
</form>

Как сохранить выбранное значение даты и времени? Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 23 апреля 2020

Без дальнейших настроек вы можете сделать

<form action="index" method="post">
    <?=
    DateTimePicker::widget([
        'name'          => 'datetime_10',
        'value'         => Yii::$app->request->post('datetime_10', null),
        'options'       => [
            'placeholder'  => 'Start Date Time',
            'autocomplete' => 'off',
            'required'     => true,
        ],
        'convertFormat' => false,
        'pluginOptions' => [
            'format'         => 'yyyy-mm-dd hh:i:ss',
            //'startDate' => '01-Mar-2014 12:00 AM',
            'todayHighlight' => true,
            'autoclose'      => true,
        ]
    ]);
    ?>
    <?=
    DateTimePicker::widget([
        'name'          => 'datetime_11',
        'value'         => Yii::$app->request->post('datetime_11', null),
        'options'       => [
            'placeholder'  => 'End Date Time',
            'autocomplete' => 'off',
            'required'     => true,
        ],
        'convertFormat' => false,
        'pluginOptions' => [
            'format'         => 'yyyy-mm-dd hh:i:ss',
            //'startDate' => '01-Mar-2014 12:00 AM',
            'todayHighlight' => true,
            'autoclose'      => true,
        ]
    ]);
    ?>
</form>

Но это ненадежно. Если вы собираете данные на нескольких страницах, вам действительно следует рассмотреть вопрос о сохранении / постоянстве, хотя бы сеанс и сохранение в базе данных после завершения всех форм, или пропустить сеанс и go непосредственно с данными в памяти, база данных и т. Д. 1006 *.

0 голосов
/ 23 апреля 2020

Вам следует присвоить значение, присвоенное вашему ноду-> полю, и присвоить / переназначить нужное вам значение после (или до) субимита

<?=
    DateTimePicker::widget([
        'name' => 'datetime_10',
        'value' => $yourModel->yourField, // <------ this 
        'options' => [
                'placeholder' => 'Start Date Time',
                'autocomplete' => 'off',
            'required' =>true,
                ],
        'convertFormat' => false,
        'pluginOptions' => [
            'format' => 'yyyy-mm-dd hh:i:ss',
            //'startDate' => '01-Mar-2014 12:00 AM',
            'todayHighlight' => true,
            'autoclose' => true,
        ]
    ]);
 ?>
...