DatePicker создается следующим кодом:
$form->field($model, 'cdate')->widget(DatePicker::className(), ['clientOptions' =>
['dateFormat' => 'd MM yy'],
'options' => ['class' => 'col-md-2',
'onChange' => '$("#btn_submit").prop(\'disabled\',\'disabled\')',
],
])
->label(FALSE)
->textInput(['placeholder' => 'Я плейсхолдер', 'value' => $today]);
Он создается в представлении которое рендерит функция actionIndex в контроллере. В этом action есть две переменные, сейчас они выглядят вот так
$formatter = \Yii::$app->formatter;
//сегодняшний день
$dateDay = $formatter->asDate('now', 'dd');
//текущий месяц
$dateMonth = $formatter->asDate('now', 'MM');
Как я могу данные с DatePicker'a без перезагрузки страницы передать в эти переменные?
UPD: я все починил, сделал в представлении вот так:
'onSelect' => new \yii\web\JsExpression('function (date, instance) {
$.ajax({
type: \'POST\',
url: \'index\',
data: \'date=\' + date,
success: function (result) {
console.log(\'success\' + \' \' + date)
},
});
В инструментах разработчика приходит следующее:
Но при этом
$userDate = Yii::$app->request->post();
var_dump($userDate);
всегда выводит array(0) { }
даже если я делаю var_dump()
в представлении, однако функция success
срабатываем и в консоль выводится правильное время. Как можно получить данные из запроса?
Как вариант: можно задать в options
данного виджета какой нибудь id
или лучше data
параметр.
Пример:
'options' => [
'class' => 'col-md-2',
'data-role' => 'datepicker-widget',
'onChange' => '$("#btn_submit").prop(\'disabled\',\'disabled\')',
],
И затем создать обработчик на js который будет отлавливать изменение значения в виджете и отправлять аякс запрос.
Пример:
$(document).on('change', '[data-role=datepicker-widget]', function() {
$.ajax({
url: '/site/ajax', //путь до экшена к которому пойдёт обращение по ajax-у
...
});
});
Не могу комментировать, так как нет 50 репутации. Вам нужно смотреть на var_dump() в панели разработчика. Скажите, пожалуйста, где Вы прописываете данный код:
$userDate = Yii::$app->request->post();
var_dump($userDate);
Вы должны прописать его в action, к которому обращается ajax, и тогда ответ с сервера можно будет наблюдать в панели разработчика. И в этом ответе вы увидите результат выполнения функции var_dump()
Виртуальный выделенный сервер (VDS) становится отличным выбором
Я новичок в ДБ2 и сходу натолкнулся на проблемы с подключениемИтоговая цель, надо подключиться к DB2 из php посредством odbc
Существует ли класс php для красивого форматирования JSON строки? Json получается очень большой и если записать в файл одной строкой, то будет...
Всем приветЕсть форма на сайте, в которую человек вбивает имя и телефон, дальше данные передаются по апи, но в файле записей появляются строчки...
В каких случаях компилятор неявно создает конструктор перемещения и соответствующий оператор присвоения?