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

Рейтинг: 5

2022-07-02 / / 0 комментариев / Про кодинг и сервер / , ,