Intereting Posts
Получение комментариев за пределами шаблона комментария Детская тема на основе набора инструментов не найдена Только прикрепленные файлы заменить существующее меню программно WordPress Social Login> Опубликовать в Facebook стена Facebook Возьмите входной сигнал из формы и передайте ее функции с помощью wp-плагина Как перечислить пользовательские типы сообщений? Категории заказов по иерархии? Получите содержание страницы, не создавая HTML Получение «Невозможно изменить информацию заголовка – уже отправленные заголовки» ошибка в wp-admin только при активации любого плагина Shortcode добавляет p и br теги Сообщения на странице не возвращают правильный номер Как избежать дублирования первичных ключей при импорте SQL? Имея отдельные плагины и папку тем для настройки нескольких сайтов Должен ли я использовать MultiSite для сайта, основанного на субдомене?

Невозможно использовать get_results () в ajax-запросе

Я использую jQuery ajax для получения определенных данных из wpdb, и я получаю следующее сообщение:

<b>Fatal error</b>: Call to a member function get_results() on a non-object in <b>C:\wamp\www\maps_en2\markers.php</b> on line <b>15</b><br /> 

Это вызов:

 $.ajax({ type: "POST", url: "markers.php", data: ({'southWestLat' : southWestLat , 'southWestLng' : southWestLng , 'northEastLat' : northEastLat , 'northEastLng' : northEastLng}), success: function(msg){ alert( msg ); } }); 

И это называется code – markers.php:

 <?php global $wpdb; $sql = "SELECT user_id, lat, lng FROM coordinates WHERE lat>".$_POST["southWestLat"]." and lat<".$_POST["northEastLat"]." and lng>".$_POST["southWestLng"]." and lng<".$_POST["northEastLng"]; $rows = $wpdb->get_results($sql, OBJECT_K); ... ?> 

Странно, что, когда PHP-код был в том же файле, что и javascript (а вместо параметров «southWestLat» и т. Д., Я использовал числа, то это сработало.
Я должен указать, что jquery находится в файле php под 20десятью тематической папкой, но markers.php находится под корневым каталогом (не мог использовать его, когда он был в теме по какой-либо причине).

Solutions Collecting From Web of "Невозможно использовать get_results () в ajax-запросе"

Это не будет работать, потому что вы вызываете example.com/markers.php напрямую, и этот файл ничего не загружает из WordPress, например, объект $wpdb .

Вы можете включить wp-load.php , но это может сломаться, если вы переместите установку WordPress в другое место. Чтобы больше соответствовать тому, как следует создавать Ajax-вызовы в WordPress, вы должны написать его как крючок для wp_ajax_[action] . См. Мое введение в Ajax в WordPress для получения более подробной информации.