I am using yii2-widget-datetimepicker in my yii2 project. I want to retain the value of it after submitting the page.
<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>
How to retain the selected date-time value? Any help would be highly appreciated.
Without further tweaks, you could do
<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>
But this is not reliable. If you are gathering data throughout multiple pages, you should really consider storage/persistence, at least session & save to database after all the forms are completed, or skip session and go directly with in-memory data, a database etc.
You should assigne a value realted to your nodel->field and assigne/reassigne the value you need after (or before ) subimit
<?=
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,
]
]);
?>
Related
$this->widget('zii.widgets.jui.CJuiDatePicker',array(
'name'=>'date_from',
'id' => 'date_from',
//'value'=> date('d/m/Y',strtotime($date_from)),
'options'=>array(
'dateFormat' =>'dd/mm/yy',
'altFormat' =>'dd/mm/yy',
'changeMonth' => true,
'changeYear' => true,
'showAnim'=>'slide',
'showButtonPanel'=>true,
),
'language' => 'en-GB',
'htmlOptions'=>array(
'class'=>'form-control'
),
));
This is the code for the date picker so I want the user to view the date in the following format: dd/mm/yy. I want it seperated with slashes.
This works in Yii 1.20 with JQuery 1.11.2 I added additional parameters just as reference.
$this->widget('zii.widgets.jui.CJuiDatePicker', array(
'model' => $model,
'attribute' => 'date_from',
'language' => 'en',
'options' => array(
'showAnim' => 'fold',
'dateFormat' => 'yy/mm/dd',
'showOtherMonths' => true,
'selectOtherMonths' => true,
'changeYear' => true,
'changeMonth' => true,
'yearRange' => "2000:2020",
'showWeek' => false,
'firstDay' => 1
),
'htmlOptions' => array(
'size' => '10',
'maxlength' => '10',
'class' => 'form-control'
)
));
I am using kartik datePicker in my site but whenever I try to use onSelect event the doesn't triggered I don't know what is the problem. I searched a lot but didn't find any solution.
This is my code:
<?php
echo DatePicker::widget([
'name' => 'check_issue_date',
'type' => DatePicker::TYPE_INLINE,
'options' => ['placeholder' => 'Select issue date ...', 'id' => 'date-picker'],
'pluginOptions' => [
'format' => 'dd-M-yyyy',
'todayHighlight' => false,
'onSelect' => 'function(dateText, inst) {
alert("hello");
}'
]
]);
?>
Look at pluginEvents on this page http://demos.krajee.com/widget-details/datepicker#settings
<?php echo DatePicker::widget([
'id'=>'scheduleProject',
'name' => 'scheduleProject',
'type' => DatePicker::TYPE_INLINE,
'language' => 'en',
'pluginOptions' => [
'format' => 'M-dd-yyyy',
'startDate' => date(\Yii::$app->params['viewDateFormat']),
'todayHighlight' => true,
'todayBtn' => true,
],
'pluginEvents' =>[
"changeDate" => "function(e) { alert(123)}",
]
]);?>
echo DatePicker::widget([
'name' => 'check_issue_date',
'type' => DatePicker::TYPE_INLINE,
'options' => ['placeholder' => 'Select issue date ...', 'id' => 'date-picker'],
'pluginOptions' => [
'format' => 'dd-M-yyyy',
'todayHighlight' => false,
'onSelect' => 'function(dateText, inst) {
alert("hello");
}'
],
'pluginEvents' => [
'onChange' => 'function(event) {
console.log(event.date);
}'
]
]);
?>
I am using kartik grid lib in yii2
This works.
[
'attribute' => 'status',
'filterType' => GridView::FILTER_SELECT2,
'filter' => ['Active' => 'Active', 'In Active' => 'In Active'],
'filterWidgetOptions' => [
'pluginOptions' => ['allowClear' => true],
],
'filterInputOptions' => ['placeholder' => 'Select'],
]
But this doesn't
[
'attribute' => 'status',
'filterType' => '\kartik\widgets\Select2',
'filter' =>['Active' => 'Active', 'In Active' => 'In Active'],
'filterWidgetOptions' => [
'pluginOptions' => ['allowClear' => true],
],
'filterInputOptions' => ['placeholder' => 'Select'],
]
Why ? I need to use the point 2 approach. But it is not working.
Changed filter type to '\kartik\select2\Select2' and it worked.
usa 'filterType' =>GridView::FILTER_SELECT2, el composer usado es use kartik\grid\GridView;
'filterType' => GridView::FILTER_SELECT2,
'filter' => ArrayHelper::map(Entidad::find()->asArray()->all(),'id', 'nombre'),
filterWidgetOptions' => [
'pluginOptions' => ['allowClear' => true],
],
'filterInputOptions' => ['placeholder' => 'Selección'],
echo $form->field($model, 'dob')->widget(DatePicker::classname(), [
'options' => [
'placeholder' => Yii::t('app', 'Please pick your birth-date'),
],
'type' => DatePicker::TYPE_INPUT,
'pluginOptions' => [
'autoclose'=>true,
'format' => 'dd/mm/yyyy',
'startView' => 1,
],
])->label(Yii::t('app', 'Date of Birth'));
The code above is used to create a DatePicker in yii 2. Is it possible for me to only allow users to select date before today?
Yes, you can the future dates disable by endDate property of pluginOptions.
echo $form->field($model, 'dob')->widget(DatePicker::classname(), [
'options' => [
'placeholder' => Yii::t('app', 'Please pick your birth-date'),
],
'type' => DatePicker::TYPE_INPUT,
'pluginOptions' => [
'autoclose'=>true,
'format' => 'dd/mm/yyyy',
'startView' => 1,
'endDate'=>date('d/m/Y')
],
])->label(Yii::t('app', 'Date of Birth'));
I have tried with below code and it is not working for me.
echo $form->field($model, 'value')->widget(DateTimePicker::classname(), [
'pluginOptions' => [
'autoclose' => true,
'format' => 'yyyy-mm-dd HH:ii:ss',
'minuteStep' => 1,
'todayHighlight' => true,
'startDate' => date("y-m-d H:i:s"),
'changeYear' => true,
'changeMonth' => true,
]
])->label('Select date & time');
It works for me as below:
$form->field($model, 'value')->widget(DateTimePicker::classname(), [
'options' => ['placeholder' => 'Enter Value'],
'pluginOptions' => [
'autoclose' => true,
'format' => 'Y-m-d H:i:s',
'startDate' => date('Y-m-d H:i:s')
]
]);
Add 'minDate' => 0 to disable previous date selection from today.
Updated Code
echo $form->field($model, 'value')->widget(DateTimePicker::classname(), [
'pluginOptions' => [
'autoclose' => true,
'format' => 'yyyy-mm-dd HH:ii:ss',
'minuteStep' => 1,
'minDate' => 0,
'todayHighlight' => true,
'startDate' => date("y-m-d H:i:s"),
'changeYear' => true,
'changeMonth' => true,
]
])->label('Select date & time');
echo $form->field($model, 'value')->widget(DateTimePicker::classname(), [
'pluginOptions' => [
'minuteStep' => 1,
'minDate' => 0,
'startDate' => date("y-m-d H:i:s"),
]
])
You can use the following i assume you are using kartik\widgets\DateTimePicker
$form->field($model, 'campaign_schedule', [
'inputOptions' =>
[
'value' => date('Y-m-d H:i:s'),
],
])->widget(kartik\widgets\DateTimePicker::class, [
'options' => ['placeholder' => 'Select operating time ...'],
'convertFormat' => false,
'pluginOptions' => [
'format' => 'yyyy-mm-dd hh:ii:ss',
'todayHighlight' => true,
'startDate' => new JsExpression("new Date('" . date('m/d/y') . "')"),
'autoclose' => true,
],
])