如何在CodeIgniter中创建自动填充搜索字段?

时间:2016-11-30 11:30:41

标签: javascript php jquery ajax codeigniter

我在CodeIgniter中创建了一个自动完成搜索字段,但它无法正常工作。限制为10但每次输入字符时,列表变得很长很长,就像在图像中显示一样:

enter image description here

images of autocomplete search field

这是我的控制器:

"

这是我的模特:

'

这是我的观点:

    function search_fields(){

    $country_id = $this->input->get('term');
    $data['var']= $this->Travel->search_field($country_id); 
    echo json_encode($data['var']);

}

此外,我希望用户可以从下拉列表中选择输入字段的值。有人有任何想法吗?

2 个答案:

答案 0 :(得分:2)

你忘了从#demo中清除html。当Ajax中的成功属性从#demo中删除所有内容时:

success:function(data){
   $("#demo").html('');
    $.each(data, function() {
      $.each(this, function(k, v) {
          $("#demo").append("<li>" + v + "</li>");
      });
    });
}

答案 1 :(得分:0)

在模型返回result_array中:

return $query->result_array();

在控制器中:

$search_data = $this->Travel->search_field($term); 
echo json_encode($search_data);

现在,您可以使用jquery autocomplete从数据库中检索值。

<script>
$(document).ready(function() {
    $(function(){
        $( "#text" ).autocomplete({
            source: function(request, response) {
                $.ajax({
                url: "http://localhost/new/index.php/travels/search_fields",
                data: { term: $("#text").val()},
                dataType: "json",
                type: "POST",
                success: function(data){
                    var resp = $.map(data,function(obj){
                        return obj.destination;
                   }); 
                   response(resp);
                }
            });
        },
        minLength: 2
        });
    });
});
</script>