Intereting Posts
Как я могу написать правило перезаписи, чтобы отобразить многоуровневое? Загрузка Ajax плагина, который также использует Ajax Объединение нескольких таксономий в один URL-адрес wpdb получает аватары и авторский url Предварительный просмотр сообщений возвращает 404 Создать дочернюю страницу в настраиваемом типе сообщений Внедрение плагинов как часть темы Получать контент с страниц с той же мета-ключю из базы данных отображать сообщение несколько раз на основе массива дат предотвращать разрыв текстовых сообщений в Word Могу ли я создать шаблон страницы, использовать его один раз, а затем скрыть / удалить параметр, чтобы использовать его снова? Как решить: произошла ошибка при загрузке Отображение значения Metabox (таксономия пользовательского типа сообщений) Являются ли короткие штрих-коды шаблонов php? Отображать только дочерние термины определенного родительского термина пользовательской таксономии для каждого пользовательского сообщения

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 и т. Д. В вашем скрипте.