4

私のajaxオートコンプリートはサーバーから国を返しますが、入力したものは常にすべての国を表示します。request.term をコントローラーからモデルに送信する際に何か問題がありますが、それが何であるかわかりません。ヒントをありがとう!

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(); 
}
4

2 に答える 2