Intereting Posts
Плагин перенаправления: перенаправление всех URL-адресов с регулярным выражением Два плагина, имеющие одну и ту же пользовательскую регистрацию типа сообщения Как выбрать цветные изображения для 1500 сообщений? Ошибка: страница параметров не найдена Как получить сообщение с другого блога / сайта WordPress? Исключить загруженные файлы из выдержки () «wp» должен срабатывать при редактировании сообщения? Получение 3 последних сообщений от каждого из 5 разных пользовательских типов сообщений Как получить ссылку на главную страницу Определение отображаемого содержимого Когда я добавляю кнопку в меню навигации, она подталкивает все мои существующие пункты меню вертикально, заставляя их быть вне центра. Как это исправить? wp_mail BCC admin Подкатегория Woocommerce 404 Создание токена доступа к почтовой странице Попробуйте запустить функцию только на домашней странице

Невозможно использовать 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 для получения более подробной информации.