При выполнении 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, т.е событие. Т.е. первым аргументом в функцию-обработчик события отправляется ссылка на объект события. Или говоря совсем уж простым языком — тут у нас ссылка, переход по которой нам необходимо прервать.


2022-06-03 | | 0 комментариев | Кодинг | , ,

Рейтинг:

Похожие записи

Кейс: Как создать фид для OZON в WooCommerce

При помощи плагина YML for Yandex Market можно создавать фиды не только для Яндекса, но и для других маркетплейсов. В этом кейсе разберём создание фида...

W3TC Page Cache мешает созданию фида (решение)

Эта инструкция актуальна для плагинов: YML for Yandex Market; XML for Google Merchant Center; XML for Avito. XML for Hotline; XML for O.Yandex (Яндекс Объявления);...

Настройка плагина Gift upon purchase for WooCommerce

Плагин Gift upon purchase for WooCommerce позволяет автоматически добавлять в корзину пользователя подарки, если он выполняет те или иные условия. Например, с помощью данного плагина...

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

Ваш адрес email не будет опубликован.