我一直试图通过.ajax帖子简单地在wordpress dbase中调用一个表,然后返回我想要的值,但是我在返回的页面上得到了这个错误:“调用成员函数get_results()在非对象上“。
这是我的php文件:
<?php
global $wpdb;
if (isset($_POST['state'])) {
$results=$wpdb->get_results("SELECT DISTINCT make FROM cz_cars ORDER BY make ASC");
echo $results[0][0];
exit;
}
?>
这是我正在使用的jquery:
jQuery(document).ready(function()
{
jQuery("#caryear").change(function()
{
jQuery.ajax(
{
type: "POST",
url: "wp-content/themes/storefront/includes/post-yearmakel.php",
data: ({ 'state' : jQuery("#caryear").val() }),
success: function(msg)
{
jQuery('#carmake').append('' + msg + '');
}
});
});
});
当我在php文件中注释掉数据库内容时,这段代码工作正常,只是回显一个字符串。我有与其他包含的php文件,它被wordpress识别。不知道这里发生了什么......我想全球$ wpdb;会使这项工作!
有什么想法吗?
答案 0 :(得分:1)
声明某些内容global
仅在global
范围之外有意义。
第一个脚本没有看到初始化的$wpdb
。您需要include
WordPress引擎或至少设置部分$wpdb
答案 1 :(得分:0)
我不确定问题是否得到了回答,但我相信你需要包括
wp-load.php
档案。
它应该在wordpress root install中。它将为您提供对wp全局变量的访问。