Intereting Posts
CPT, метаданные, параметр url Функциональность контроллера – если пользователь не выполнил вход в систему, отправьте их на определенную страницу (а не wp_login) Как создать повторяющееся поле в метабоксе, если я следую учебнику wppb.io? Получать сообщение или страницу раньше Пользовательские поля и автоматическое сохранение Поиск дат для пользовательских типов сообщений Нужна идея о том, как открыть всплывающее окно, которое содержит только созданное сообщение в wordpress admin Содержимое страницы WordPress вне WordPress Добавить пользовательский класс в существующие элементы меню из настраиваемого мета Добавьте robots.txt в root get_the_term_list дать мне пробел Возврат URL-адреса изображения из его идентификатора привязки с использованием настраиваемого плагина типа сообщения Проверка покупки Paypal – это успех или нет в Easy Digital Download Plugin Как удалить имя таксономии родителей из заголовка, созданного wp_title ()? Engadget Как и большинство прокомментированных плагинов

Не знаете, почему wp_ajax не работает?

Я пытаюсь понять, как использовать AJAX в wordpress, следующий код создает форму с полем ввода с использованием короткого кода функции wordpress [ajaxf].

<?php add_action( "wp_ajax_ajaxcf", "my_action_callback" ); add_action( "wp_ajax_nopriv_ajaxcf", "my_action_callback" ); function my_action_callback() { $whatever = intval( $_POST['fname'] ); echo $whatever; die(); } function ajax_contact_form() { ?> <script type="text/javascript" > jQuery(".submit").click(function() { jQuery.post(ajaxurl, $('#ajaxForms').serialize(), function(response) { alert('Got this from the server: ' + response); }); }); </script> <form id="ajaxForms"> <label for="fname">First Name:</label> <input id="fname" name="fname" value="First Name" type="text" /> </p> <p class="submit"> <input name="action" type="hidden" value="ajaxcf" /> <input id="submit_button" class="submit" value="Send" type="button" /> </p> </form> <?php } add_shortcode("ajaxcf", "ajax_contact_form"); 

Я просто хочу предупредить ответ с помощью jQuery, но он, похоже, не работает, и я понятия не имею, почему.

Помогите оценить.

благодаря

Это просто проблема с javascript. Когда ваш javascript, который прикрепляет поведение клика к форме, анализируется, элемент формы еще не существует, потому что он находится дальше страницы, поэтому он не привязан. Перемещайте javascript под формой, оберните его в jQuery(document).ready() или используйте live .

EDIT – $('#ajaxForms').serialize(); должен быть jQuery('#ajaxForms').serialize(); , вам нужно определить ajaxurl в вашем javascript: var ajaxurl = "<?php echo admin_url( 'admin-ajax.php' ); ?>"; , иначе ваш код работает нормально, протестирован здесь.

Этот вопрос может помочь вам.

В принципе, вам нужно убедиться, что вы укажете «действие», когда вы отправляете запрос ajax. В вашем коде действие «ajaxcf».

В файле functions.php вашего плагина / темы вам понадобится привязать к init функцию, которая проверяет действие, в случае необходимости проверяет любые символы, а затем вызывает следующее:

  do_action( "wp_ajax_ajaxcf" ); do_action( "wp_ajax_nopriv_ajaxcf" ); 

РЕДАКТИРОВАТЬ Я не проверял сторону JavaScript, см. Ответ Майло. Но wp_ajax_ajaxcf не является действием по умолчанию, поэтому вам нужно «сделать» его.