Intereting Posts
Тема и плагины, использующие общие библиотеки Архив настраиваемого почтового типа – {post-type} .php не работает Многоуровневое разъяснение Как разместить документы Word в Интернете, чтобы их можно было загружать, печатать и читать через веб-страницу? Страницы и сообщения WordPress перенаправляются на IP-адрес сервера вместо URL-адреса домена Правильно ли используются страницы для создания разделов одностраничного сайта? Удаление вкладок из медиа-загрузчика для CPT как удалить категорию nav из заголовка Bueno (WordPress Theme) Вставка этого PHP нарушает мою страницу. Зачем? Разбиение страницы на WP_User_Query, не обновляющее текущую страницу Фатальная ошибка плагина Отфильтровать результаты с настраиваемыми значениями полей и выпадающим меню Как добавить условие в цикл wordpress? Компактный список pingback с favicons Гравитационные формы после представления – GFFormsModel :: update_lead_field_value?

Использование AJAX с формами

Я пытаюсь проверить и отправить форму с помощью AJAX в WordPress, однако ответ, который я получаю, равен 0. Согласно коду , это, похоже, указывает на то, что admin-ajax не может найти функции, которые я определил.

Что я делаю не так?

Код (упрощен для демонстрационных целей)

<script type="text/javascript"> jQuery(function() { jQuery(document).on('click', '#test-button', function() { var name = jQuery("#name").val(); var AdminAJAX = <?php echo json_encode(admin_url('admin-ajax.php')); ?>; var ajaxparams = { action: 'jp_ajax_request', name: name }; jQuery.post( AdminAJAX, ajaxparams, function( response ) { alert(response); }); } } </script> <?php add_action( 'wp_ajax_jp_ajax_request', 'jp_ajax_process'); add_action( 'wp_ajax_nopriv_jp_ajax_request', 'jp_ajax_process'); function jp_ajax_process() { echo 'ajax response'; die(); } ?> <form action=""> <input type="text" id="name"> <button id="test-button">Submit</button> </form> 

Solutions Collecting From Web of "Использование AJAX с формами"

Ваши вызовы add_action() для обработчиков AJAX слишком поздние.

Добавьте эти крючки раньше, лучшее действие, вероятно, будет wp_loaded :

 add_action( 'wp_loaded', 'register_ajax_handlers' ); function register_ajax_handlers() { add_action( 'wp_ajax_jp_ajax_request', 'jp_ajax_process'); add_action( 'wp_ajax_nopriv_jp_ajax_request', 'jp_ajax_process'); } 

См. Также: Отладка AJAX .

Этот код должен быть размещен в плагине или в functions.php вашей functions.php .