2013-10-29 62 views
4

我的AJAX 自动完成做从服务器,但返回国家它始终显示所有国家不管我型。将request.term发送给Model的控制器有问题,但我无法弄清楚它是什么。非常感谢任何提示!jQuery的Ajax的自动完成功能与笨“术语”问题

HTML:

<input type='text' name='location_search' id='location_search' placeholder='Type Location' > 

JS:

$(function(){ 
    var $sfield = $('#location_search').autocomplete({ 
     source: function(request, response){ 
      var url = "<?php echo site_url('autocomplete/control_areas'); ?>"; 
       $.post(url, {data:request.term}, function(data){ 
       response($.map(data, function(countries) { 
        return { 
         value: countries.name_en 
        }; 
       })); 
       }, "json"); 
     }, 
     minLength: 2, 
     autofocus: true 
    }); 
}); 

控制器:

function control_areas(){ 
    $this->load->model('autocomplete_model'); 
    $term = $this->input->get('term', TRUE); 
    $countries = $this->autocomplete_model->get_areas($term); 
    echo json_encode($countries); 
} 

模型:

function get_areas($term){ 
    $this->db->where('name_en', $term); 
    $query = $this->db->get('countries'); 
    return $query->result(); 
} 
+0

弄来了'$长期的预期值= $ this-> input-> get('term',TRUE);'? – anvoz

回答

3

的问题是在你的模型,它应该是这样的:

function get_areas($term){ 
    $this->db->like('name_en', $term, 'after'); 
    $query = $this->db->get('countries'); 
    return $query->result(); 
} 
1

简单的小东西:

$this->db->like 

,而不是

$this->db->where