Intereting Posts
Как правильно настроить ответы форума / темы форума BBPress? получить все электронные письма как базу данных в WordPress для просмотра всех отправленных писем Показать выдержки из сообщений на главной странице P2 Используйте одну базу WordPress с несколькими экземплярами одного сайта Пользовательское меню с категориями и тегами Включение в действие init будет срабатывать слишком часто? Как добавить изображение для всех сообщений, связанных с указанной категорией? Динамическая переменная для пользовательской таксономии в цикле? Как использовать wp_get_recent_posts? Переход WordPress из поддомена в корневой домен на том же сервере Почему я не могу использовать константу класса как текстовый домен? Как перевести этот запрос mySQL в запрос $ wpdb Добавление несвязанного пространства в пользовательскую функцию Как добавить текст перед пунктом меню WordPress href Использовать REGEXP в WP_Query ключ meta_query

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