Intereting Posts
Как ускорить установку плагинов и обновление WordPress Изменение окна поиска виджета Информация о меню Выход в Javascript Как создать динамическую панель поиска WordPress из Predesigned Static Html Search-Bar? Просмотр RSS-ленты с использованием разбивки на страницы Комментарий для WordPress для виртуальной страницы Категории в модуле загрузки Плагин Socialite WP, неспособный получить ключи API от FB Перерыв функции WordPress для запуска в патчах и повторного продолжения Можно ли переместить комментарий, который должен быть ответом на другой комментарий? Как я могу надежно найти URL-адрес для скрипта или другого файла? Получить архив сообщений, разделенных таксономиями и субтаксонами Измените стиль h1, h2, только в сообщении Выберите записи, которые соответствуют названиям нескольких категорий, должны соответствовать всем перечисленным категориям Ошибка навигации

Обращение с формой Ajax submit

Я разрабатываю плагин wordpress, который создаст контактную форму, а затем отправьте детали через запрос ajax.

jQuery.ajax({ type:"post", dataType:"json", url: ajaxurl, data: {action: 'submit_data', info: info}, success: function(response) { alert("Success"); } }); 

Это функция, которая обрабатывает запрос ajax:

 add_action("wp_ajax_submit_data", "submit_data"); add_action("wp_ajax_nopriv_submit_data", "submit_data"); function submit_data() { echo "<script> alert('Hello');</script>"; die(); } 

Ссылка, которую пользователь нажмет, чтобы отправить форму:

 $link = admin_url('admin-ajax.php?action=submit_data'); <a class="button" href="'.$link.'" style="background-color:white;color:black;"> <strong>Submit</strong></a> 

После нажатия ссылки отправки я получаю предупреждение Hello, а затем берусь на пустую страницу с URL-адресом

 http://localhost:81/wordpress/wp-admin/admin-ajax.php?action=submit_data 

Почему это приводит меня к пустой странице, а не к обновлению текущей страницы?

РЕДАКТИРОВАТЬ ————————————————-

Вот полная функция jquery:

 $(".button").click(function() { $(".error").hide(); var name = $(":input.name").val(); if (name == "") { $("label#nameErr").show(); $(":input.name").focus(); return false; } var email = $(":input.email").val(); if (email == "") { $("label#emailErr").show(); $(":input.email").focus(); return false; } var phone = $(":input.phone").val(); if ((phone == "") || (isNaN(phone))) { $("label#phoneErr").show(); $(":input.phone").focus(); return false; } var info = 'name:' + name + '&email:' + email + '&phone:' + phone; alert(info); jQuery.ajax({ type:"post", dataType:"json", url: ajaxurl, data: {action: 'submit_data', info: info}, success: function(response) { if (response.type == "success") { alert("success"); } else { alert("fail"); } } }); return false; }); 

Solutions Collecting From Web of "Обращение с формой Ajax submit"

Вы должны удалить ссылку из тега привязки:

 <a class="button" href="#" style="background-color:white;color:black;"> <strong>Submit</strong> </a> 

Тогда ваша часть jQuery должна быть:

 $('a.button').click(function(event){ event.preventDefault(); //your ajax gets here: jQuery.ajax({ type:"post", dataType:"json", url: ajaxurl, data: {action: 'submit_data', info: info}, success: function(response) { alert("Success"); } }); });