Intereting Posts
Использование meta_query в add_query_arg почему эти правила rewrite_tags и правила не работают? Удаление сообщения из результатов запроса WP Установите значение параметра по умолчанию как пустое для метабокса Как запретить пользовательскому ходоку создавать вспомогательную навигацию для страниц, которые не являются родственниками текущей страницы? Удаление запроса таксономии с помощью pre_get_posts Пользовательский wp_query отличается на странице индексной страницы и категории Разработка темы: лицензионная помощь Многофакторная цена для продуктов WordPress woocommerce Примените фильтр the_content, но запретите другие связанные действия Список продуктов woocommerce по идентификатору Как добавить изображение поверх логотипа заголовка в тему для детей? Отображение пользовательских типов сообщений независимо от используемой темы Ползунок из разных виджетов WordPress | WP_Query ничего не возвращает с помощью s = a

Простейшая форма ajax не работает, когда она должна

Я пытаюсь создать очень простой вызов ajax в области wp-admin, где форма отправляет идентификатор сообщения. Это значение будет использовано для update_post_meta ().

Просто все в порядке? Ну, я был вчера на этой задаче без успеха. Не могли бы вы помочь мне сегодня решить эту проблему, чтобы я мог провести субботнюю ночь в пабе, пил пинту?

JQuery:

jQuery('#submitform').submit(ajaxSubmit); function ajaxSubmit(){ var TheForm = jQuery(this).serialize(); jQuery.ajax({ type:"POST", url: "/wp-admin/admin-ajax.php?action=UpdateMeta", data: TheForm, success:function(data){ // Help, what do I do here to make this work? }); return false; } 

HTML:

 <form action="" method="post" id="submitform" /> <input type="hidden" name="postid" value="<?php echo $post_id; ?>" /> <button type="send" name="submitbtn" id="submitbtn"></button> </form> 

PHP:

 function UpdateMeta(){ $post_id = $_POST["postid"]; update_post_meta($post_id, 'helloworld', $post_id); die(); } add_action('wp_ajax_UpdateMeta', 'UpdateMeta'); add_action('wp_ajax_nopriv_UpdateMeta', 'UpdateMeta'); 

Solutions Collecting From Web of "Простейшая форма ajax не работает, когда она должна"

Я инвестировал некоторое качественное время (и головные боли) с WP ajax, поэтому я понимаю, откуда вы.

Честно говоря, это может быть что угодно: от ошибки в вашем JS-коде или от чего-то совершенно странного, например:

 add_action('wp_ajax_UpdateMeta', 'UpdateMeta'); 

Должно быть изменено на:

 add_action('wp_ajax_updatemeta', 'UpdateMeta'); 

… удалить капиталы, потому что по какой-то причине это вызывало проблему, когда я играл с добавлением действия к wp_ajax .

Для вас будет работать следующее: я просто протестировал его на специальной странице администратора. Обратите внимание, что я добавил div с ответом на класс, если вы хотите вернуть любые данные для тестирования или пользователю.

HTML

  <form action="" method="post" id="submitform" /> <input type="hidden" name="postid" value="<?php echo $post_id; ?>" /> <input type="hidden" name="action" value="updatemeta" /> <button type="send" name="submitbtn" id="submitbtn">submit</button> </form> <div class="feedback"></div> 

PHP

 function updatemeta(){ $post_id = $_POST["postid"]; update_post_meta($post_id, 'helloworld', $post_id); die(); } add_action('wp_ajax_updatemeta', 'updatemeta'); add_action('wp_ajax_nopriv_updatemeta', 'updatemeta'); 

JS

 jQuery('#submitform').submit(ajaxSubmit); function ajaxSubmit(){ var submitform = jQuery(this).serialize(); jQuery.ajax({ type:"POST", url: "/wp-admin/admin-ajax.php", // URL to admin-ajax.php data: submitform, success:function(data){ jQuery(".feedback").html(data); // empty div to show returned data } }); return false; } 

Наслаждайтесь своим пивом. 🙂