【发布时间】:2011-10-16 23:31:46
【问题描述】:
我试图在我的视图中获取一个字段以使用数据库中的值自动完成,但似乎无法弄清楚出了什么问题......
在我看来,我有以下脚本:
$(document).ready(function() {
$(function() {
$( "#searchQuestion" ).autocomplete({
source: function(request, response) {
$.ajax({ url: "<?php echo site_url('contentmanagement/suggestions'); ?>",
data: { term: $("#searchQuestion").val()},
dataType: "json",
type: "POST",
success: function(data){
response(data);
}
});
},
minLength: 2
});
});
});
在我的内容管理控制器中,我有“建议”功能:
function suggestions() {
$this->load->model('onlinehelp');
$term = $this->input->post('term', TRUE);
if (strlen($term) < 2)
break;
$rows = $this->onlinehelp->GetAutocomplete($term);
$keywords = array();
foreach ($rows as $row)
array_push($keywords, $row->question);
echo json_encode($keywords);}
最后在我的模型中,我有跟随功能 -
function GetAutocomplete($term) {
$this->db->select('question');
$this->db->like('question',$term, 'both');
$query = $this->db->get('question');
return $query->result();
}
上面的查询相当于“SELECT question FROM question WHERE question LIKE %$term%.
谁能看出我哪里出了问题?
【问题讨论】:
-
在 Firebug 或您使用的任何开发人员工具中,从服务器返回的 JSON 响应是什么样的?
-
乍一看,您似乎还不错。我想您需要添加一些调试语句并使用 Firebug 之类的东西查看请求。
-
代码似乎达到了模型 getAutocomplete 并在那里失败 - 我得到的错误消息是“调用非对象上的成员函数”我不明白问题是什么因为 $term 变量被很好地传递了?
标签: php sql jquery-ui codeigniter autocomplete