@teodor7teodor7

Как в Yii2 ActiveForm сделать AJAX отправку и обработку данных?

Подскажите нужно в ActiveForm после валидации отправить данные Ajax и потом получив ответ выполнить функцию. Поиски не увенчались успехом.
  • Вопрос задан
  • 4100 просмотров
Пригласить эксперта
Ответы на вопрос 2
DieZz
@DieZz
Примерно так:
$form = ActiveForm::begin([
    'id' => 'form-input-example',
    'options' => [
       'onsubmit' => 'sendAjax(this, myAction)'
    ],
]);
...

Метод sendAjax:
var myAction = function (response) {
    //Делаем то, что нам нужно с ответом
    console.log(response);
}

function sendAjax(form, callback) {
    $.ajax({
        method: 'post',
        url: '/test',
        dataType: 'json',
        data: $(form).serialize()
    }).done(function (response) {
        callback(response);
    })

   //Возвращаем false чтобы форма не отправилась
   return false;
}

Код не проверял, но теоретически должно работать.
Ответ написан
Комментировать
@jStanly
Плохо работает. Функция sendAjax() отрабатывает 2 раза подряд, после чего перезагружается страница с формой...(
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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