Кодинг

При выполнении ajax в WordPress перезагружается страница (решение)

Когда мы вешаем аякс обработчик на кнопку submit, может возникнуть проблема из-за которой страница будет перезагружена и в адресную строку передадутся данные по методу GET-запрос, не смотря на то, что в type мы прописали POST.

Решается проблема довольно просто. Достаточно лишь предотвратить отправку формы используя preventDefault().

jQuery(function($){ // оборачиваем скрипт, чтобы в WP-шном  jQuery работал $
    $("#cfawp_1000").submit(function(e){ //клик по кнопке отправки формы. cfawp_1000 — это ID тега <form>
    e.preventDefault(); // предотвращаем отправку формы
    var data = $("#cfawp_1000").serializeArray(); // помещаем поля формы в массив json, для передачи в аякс обработчик
    jQuery.ajax({ // старт аякс обработки
        type: "POST",
        url:  wlAjax.ajaxurl,
        data: data,
            success: function(){
            alert(‘Передача успешна!’);
            }
        });
    });
});

Особых пояснений, я полагаю, не требуется. Разве что по function(e). Это event, т.е событие. Т.е. первым аргументом в функцию-обработчик события отправляется ссылка на объект события. Или говоря совсем уж простым языком — тут у нас ссылка, переход по которой нам необходимо прервать.


Рейтинг:

2020-03-11 | | 0 комментариев | , ,

Альтернативный заголовок изображения

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *