[英]Codeigniter AJAX data returns empty
因此,我並不是完全精通使用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”作為測試的模型中,我知道這不是搜索詞本身,它仍然返回空
您需要更改此行:
return $query->result_array;
與 :
return $query->result_array();
因為result_array()
是一個將結果返回為數組格式的函數。
您用於數據庫列的排序規則是什么? 如果不是utf8_general_ci,請嘗試將其更改。
不知道這是否有效,但是...嘗試將$.ajax
調用中的數據類型更改為jsonp
(而不是json
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.