Intereting Posts
удалить неиспользованный постмета Тип пользовательской таксономии Paginate с wp_custom_pagination Сравните старую мета с новой меткой сообщения Выделение пункта меню по названию сообщения Удаление программ программно Как добавить пользовательскую поле «Информация об авторе» в сообщения в блоге «только» и не пользовательские шаблоны сообщений Как решить проблему производительности, вызванную пользовательским типом публикации сообщений с 20k + пользовательскими стандартами таксономии Редактировать плагин-фильтр Предел изображения от 1 до 5 Проблемы с циклом WordPress Функция не работает ни в одном файле, кроме основного файла плагина Front End Dropdown Отображение всех пользовательских типов сообщений «Агент» Вставьте пользовательский контент перед заголовком виджета / после тега открытия виджета Как узнать, является ли пользователь администратором? Поиск не содержит сообщений с изображениями

Обращение с формой 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"); } }); });