【问题标题】:Jquery Ajax Autocomplete with codeigniter 'term' issues带有codeigniter'term'问题的Jquery Ajax自动完成
【发布时间】:2013-11-08 22:16:42
【问题描述】:

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

【问题讨论】:

  • 你得到$term = $this-&gt;input-&gt;get('term', TRUE);的期望值了吗?

标签: jquery codeigniter autocomplete


【解决方案1】:

简单的小东西:

$this->db->like

而不是

$this->db->where

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-11
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多