Codeigniter AJAX数据返回空

时间:2016-02-26 19:46:16

标签: javascript php sql ajax codeigniter

所以我并不是很精通使用codeiginiter但是我已经使用了一段时间了。

我正在尝试创建一个SQL查询来搜索数据库中的书籍,但是ajax总是返回空。

我回显了一些虚拟字符串,以确保在控制器和视图之间建立了正确的连接,并确保SQL查询本身有效,但我不明白为什么这仍然会发生。

这是javascript:

    $('#search').on("keyup", function() {
search = $(this).val();
console.log("Search Term: " + search);
$.ajax
({
    type: "POST",
    url: base_url + "vault/quick_search",
    data: {search_term:search},
    dataType: 'json',
    success: function(data)
    {
      console.log("Result: " + data);
    }, 
    error: function(data)
    {
        alert("?");
    }
});
});

这是控制器:

      function quick_search()
    {
       $search = $this->input->post('search_term');
       $result = $this->vault_instance->quick_search($search);
       echo json_encode($result);
    }

这是模型:

      function quick_search($search_term)
 {
   $sql = "SELECT * FROM books WHERE title LIKE '%harr%' OR author LIKE '%harr%'";
    $query = $this->db->query($sql);
    return $query->result_array;
 }

注意:抱歉编辑不好,这是我第一次提问。 另外,在我使用“harr”作为测试的模型中,我理解它不是搜索术语本身,它仍然返回空

3 个答案:

答案 0 :(得分:2)

您需要更改此行:

return $query->result_array; 

。通过

return $query->result_array();

因为result_array()是一个将结果返回数组格式的函数。

答案 1 :(得分:0)

您对数据库列使用的排序规则是什么?如果不是utf8_general_ci尝试改变它。

答案 2 :(得分:-1)

不确定这是否有效,但是......尝试将$.ajax来电中的数据类型更改为jsonp(而不是json)。