无法在CodeIgniter中使用自动完成功能 - 想法?

时间:2013-01-23 01:44:35

标签: php codeigniter jquery-autocomplete

我有一个表格,用户可以在其中输入视频游戏的名称。我要做的是在一个名称和ID为“gameTitle”的字段中设置自动完成功能。自动完成功能是从名为“aararity”的数据库表中提取名为“title”的字段。

我使用the guide on this blog作为我的范例。

首先,我知道要自动完成工作,您需要在config/config.php中执行此操作并执行此操作:

$config['csrf_protection'] = FALSE;

在我看来,我有:

$(document).ready(function() {
$(function() {
$( "#gameTitle" ).autocomplete({ // the field I want to autocomplete is called gameTitle
source: function(request, response) {
$.ajax({ url: "",
data: { term: $("#gameTitle").val()},
dataType: "json",
type: "POST",
success: function(data){
response(data);
}
});
},
minLength: 2
});
});
});

这是我的控制器中的“建议”功能($ row-> title中引用的“标题”是指我试图从中获取的数据库表中的“标题”字段):

function suggestions()
{
            $this->load->model('usergames_model');
            $term = $this->input->post('term',TRUE);

            if (strlen($term) < 2) break;

            $rows = $this->autocomplete_model->GetAutocomplete(array('keyword' => $term));

            $json_array = array();
            foreach ($rows as $row)
            array_push($json_array, $row->title);

            echo json_encode($json_array);
}  

现在,这是我在模型中添加的内容:

function GetAutocomplete($options = array())
{
     $this->db->select('title');
     $this->db->like('title', $options['keyword'], 'after');
     $query = $this->db->get('aararity');
     return $query->result();
}  

基本上,当我运行表单时,没有任何自动完成功能。我认为$options[keyword]参数可能是问题;我几乎从上述博客中复制了这些内容,我猜这可能是作者使用的模糊占位符。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

天啊,我简直不敢相信......我想出来了......

suggestions()试图调用名为“autocomplete_model”的不存在的模型 - 我忘了将其更改为“usergames_model”!!!!

现在效果非常好!