2016-02-11 49 views
0

这里是我的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

首先,检查该功能将返回结果或不

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  
    }, 

}); 
}()); 
+0

获得响应,但不显示结果作为drowpdown .. – Prasanga

+0

你有没有更改JavaScript功能。将结果数组作为关键值进行管理。 Ie array([0] =>'sudhir',[1] =>'prasanga') – Sudhir

+0

已更改,但未显示结果作为下拉列表 – Prasanga

相关问题