如何使用自动完成从数据库加载数据?

时间:2016-02-11 05:28:34

标签: ajax codeigniter

这是我的jQuery:

$(function() {
      $( "#user_role" ).autocomplete({ 
        source: function( request, response ) {
            $.ajax({
                url: "ajax/search_username",
                dataType: "json",
                data: request,
                success: function(data){
                    if(data.response == 'true') {
                       response($data);
                    }
                }
            });
        },
        minLength: 1,
        select: function( event, ui ) {
            //Do something extra on select... Perhaps add user id to hidden input    
        },

    });
}());

这是我的HTML,

<input type="text" id="user_role" name="user_role">

这是我的控制器,

function search_username() {

    $keyword=$this->input->get('term');
    $this->load->model('chat_model');
    $data=$this->chat_model->GetRow($keyword);        
    echo json_encode($data);
} 

这是我的模特

public function GetRow($keyword) {       

    $this->db->like('user_type', $keyword, 'both');
    return $this->db->get('lc_user_types')->result_array();
}

我尝试做的是使用ajax加载数据表单数据库,但它的响应是no properties,但数据已经在表中,请任何人帮我摆脱这个。

1 个答案:

答案 0 :(得分:1)

首先检查此功能是否会返回结果

public function GetRow($keyword) {       
    $this->db->like('user_type', $keyword, 'both');
   return $this->db->get('lc_user_types')->result_array();


}

如果返回则更改功能

$(function() {
   $( "#user_role" ).autocomplete({ 
    source: function( request, response ) {
        $.ajax({
            url: "ajax/search_username",
            dataType: "json",
            data: request,
            success: function(data){
                response($.map(data, function (value, key) {
                        return {
                            id:key,
                            label: value,
                            value: value
                        };
                    }));
            }
        });
    },
    minLength: 1,
    select: function( event, ui ) {
        //Do something extra on select... Perhaps add user id to hidden input    
    },

});
}());