Intereting Posts
Разбивка страниц не работает на странице Category.php Есть ли способ ограничить количество элементов верхнего уровня в пользовательском меню? Как закрыть соединение wpdb? Как вывести список определенного типа сообщений в таблице? wp_nav_walker, который взаимодействует с виджетами для настройки мега-меню Настройка разметки содержимого Widget Измените имя и имя_файла для профиля в меню по умолчанию, без изменения основных файлов? post_name не сохраняется до публикации публикации … где я должен хранить свою пулю до тех пор, пока она не станет жить? Отфильтровать заголовок блога, отображаемый в заголовке Получить каждый виджет отдельно от боковой панели Редактировать / удалить wp_dashboard_recent_drafts () plugins_url () работает везде, но wp_reqister_script () media_handle_upload странная вещь Удалить дублируемую ссылку на продукт из WooCommerce Page Row Actions WordPress AJAX не правильно определяет язык?

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