Intereting Posts
Как обрабатывать html-редактор весь контент одного сообщения Загрузите изображение пользовательского поля WordPress и установите его для показа изображения Пользовательский фильтр с использованием meta_value в списке adminpress admin не работает Больше тегов и изображений Можно ли использовать систему cron для запуска функции, подключенной к API AJAX Почему функция wp_mail () не отправляет электронные письма и отображает «0» в ответе «Сеть» Chrome Установленные темы и плагины не отображаются в меню темы в субдомене WordPress Получить сообщение по заголовку Почтовые шаблоны и почтовые идентификаторы Перенаправление пользователей при первом входе в динамическую ссылку Cant view wordpress после установки Должен ли я устанавливать плагины в мою установку WordPress с веб-сайтов, имеющих URL-адрес «nulled» или «null»? Обработка цвета текста логотипа из раздела admin Как правильно добавить мои стили, переопределяющие текущие стили Установка 'post_format'

Ajax вызов функции всегда возвращает 0 в переднем конце (без плагина)

Я вызываю функцию через ajax, но всегда получаю 0 взамен.

<?php get_header(); global $wpdb; $qry="select * from wp-terms where term_id IN(SELECT term_id as term_id FROM wp_term_taxanomy = 'category')"; $data=$wpdb->get_results($qry); foreach($data as $term) { ?> <div class="checkbox" id="checkpadding"> <label> <input type="checkbox" class="catclass" value="<?php echo $term->term_id; ?>"> <span id="checktext"><?php echo $term->name; ?></span> </label> </div> <?php } <script> jQuery(document).ready(function() { jQuery('.catclass').change(function () { if (this.checked) { var catid = ((this.value)); var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; jQuery.ajax({ url: ajaxurl, data: { 'action': 'getpost', 'catid': catid }, success: function (data) { alert(data); if(data.type == "success") { alert("success"); } else { alert("AJAX error") } }, error: function (errorThrown) { console.log(errorThrown); } }); } }); }); </script> <?php get_footer(); add_action('wp_ajax_getpost','getpost'); add_action('wp_ajax_nopriv_getpost', 'getpost'); function getpost() { echo "hi"; die(); } ?> 

Solutions Collecting From Web of "Ajax вызов функции всегда возвращает 0 в переднем конце (без плагина)"

Первые вещи сначала

У вас есть несколько ошибок в коде.

  • Таблица для терминов называется wp_terms вместо wp-terms
  • Запрос $qry , внутренний запрос имеет недопустимый WHERE -clause: SELECT term_id as term_id FROM wp_term_taxanomy = 'category' должен быть SELECT term_id as term_id FROM wp_term_taxanomy WHERE taxonomy = 'category'
  • Улучшение : используйте $wpdb->prefix вместо статического wp_ (не все установки WordPress используют wp_
  • Вы регистрируете функцию AJAX в шаблоне вместо своих functions.php

Убрано

Вы можете использовать такой код:

Ваш шаблонный файл

 <?php get_header(); global $wpdb; $qry = "select * from {$wpdb->prefix}terms where term_id IN ( SELECT term_id as term_id FROM {$wpdb->prefix}term_taxanomy WHERE taxonomy = 'category' )"; $data = $wpdb->get_results( $qry ); foreach( $data as $term ) { ?> <div class="checkbox" id="checkpadding"> <label> <input type="checkbox" class="catclass" value="<?php echo $term->term_id; ?>"> <span id="checktext"><?php echo $term->name; ?></span> </label> </div> <?php } <script> jQuery(document).ready(function() { jQuery('.catclass').change(function () { if (this.checked) { var catid = ((this.value)); var ajaxurl = '<?php echo admin_url('admin-ajax.php'); ?>'; jQuery.ajax({ url: ajaxurl, data: { 'action': 'getpost', 'catid': catid }, success: function (data) { alert(data); if(data.type == "success") { alert("success"); } else { alert("AJAX error") } }, error: function (errorThrown) { console.log(errorThrown); } }); } }); }); </script> <?php get_footer(); ?> 

Ваши функции.php

Вы добавляете остальные в свои функции. Php:

 <?php add_action('wp_ajax_getpost','getpost'); add_action('wp_ajax_nopriv_getpost', 'getpost'); function getpost() { echo "hi"; die(); } ?> 

В этом случае все должно быть хорошо.

отладка

Подумайте об увольнении вашего вызова AJAX без переменной из select, чтобы убедиться, что он зарегистрирован правильно.

Затем создайте $array для вашего ответа, который вы отправляете обратно в браузер с помощью wp_send_json() , чтобы вы могли обрабатывать свои значения, такие как data.type и т. Д. В вашем скрипте.