MySQL select query with ajax

时间:2013-07-01 作者:Avenger

我使用ajax将变量传递给列表。php在我的212模板中。在列表中。php我正在执行mysql select查询,但当我在控制台中看到时,我收到以下错误:

<br />
<b>Fatal error</b>:  Call to a member function get_results() on a non-object in <b>D:\\xampp\\htdocs\\wordpress\\wp-content\\themes\\twentytwelve\\list.php</b> on line <b>4</b><br />

My Code:

搜索php

<?php
/*
Template Name: Search
*/
get_header();?>

<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
  $("#parent_category").change(function()
  {
    var parent_category = $(this).val();
    if(parent_category != \'\')  
     {
      $.ajax
      ({
         type: "POST",
         url: "<?php echo get_template_directory_uri(); ?>/list.php",
         data: "parent_category="+ parent_category,
         success: function(option)
         {
           $("#child_category").html(option);
         }
      });
     }
     else
     {
       $("#child_category").html("<option value=\'\'>-- No category selected --</option>");
     }
    return false;
  });
});
</script>

<select id="parent_category" name="parent_category">
    <option value="" selected="selected">-- Select blood group --</option>
    <option value="A1 positive">A1 positive</option>
    <option value="A1 negative">A1 negative</option>
    <option value="A2 positive">A2 positive</option>
    <option value="A2 negative">A2 negative</option>
    <option value="B positive">B positive</option>
    <option value="B negative">B negative</option>
    <option value="A1B positive">A1B positive</option>
    <option value="A1B negative">A1B negative</option>
    <option value="A2B positive">A2B positive</option>
    <option value="A2B negative">A2B negative</option>
    <option value="AB positive">AB positive</option>
    <option value="AB negative">AB negative</option>
    <option value="O positive">O positive</option>
    <option value="O negative">O negative</option>
    <option value="A positive">A positive</option>
    <option value="A negative">A negative</option>
</select>

<select id="child_category" name="child_category">
  <option value="">-- No location selected --</option>
</select>

<?php get_footer(); ?>
列表。php

<?php
if(isset($_POST[\'parent_category\']) && $_POST[\'parent_category\'] != \'\')
{   
    $result = $wpdb->get_results( "SELECT home_location FROM wp_places WHERE blood_group LIKE \'".$getGroupType."%\'" );
    print_r($result);   
}
?>
有什么想法或建议吗?谢谢

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

你的list.php 文件不会加载任何WordPress核心,至少根据您发布的代码,没有迹象表明它会加载。因此,WordPress类和函数将不可用,因此会出现错误。

Merely having a file in the theme folder does not mean that WordPress will load the file, or that when accessed the file will be loaded in a WordPress context.

做正确的事并使用AJAX API 用于AJAX请求。这就是它的意义所在。你这样做是很艰难的,也是很痛苦的。Codex中有很多使用AJAX API的例子,这里也有很多关于它的问题。开始吧。如果你有问题,请用细节编辑你的问题。

结束