2017-01-25 165 views
0

我的意圖是搜索用戶。但是自動完成功能對我來說不起作用。我想在這方面提供一些幫助。(Codeigniter-jquery ui)自動完成功能不起作用

這裏是我的代碼,

HTML

<input id="user-input" type="text" name="users" placeholder="Search User" autocomplete="on"> 

型號

function get_user($user) { 

    $this->db->select('name'); 
    $this->db->like('name', $user); 
    $query = $this->db->get('users'); 

    // echo $query; die; 

    if($query->num_rows() > 0){ 
     foreach($query->result_array() as $row) { 
      $row_set[] = htmlentities(stripslashes($row['name'])); 
     } 

     echo json_encode($row_set); 
    } 

} 

控制器

public function user_search() { 

    $this->load->model('users_model'); 

    if (isset($_GET['term'])){ 
     $user = strtolower($_GET['term']); 
     $this->users_model->get_user($user); 
    } 

} 

的js

$(function(){ 
    $("#user-input").autocomplete({ 
    source: "site/user_search", 
    minLength: 1 
    }); 
}); 

我使用jQuery UI版本1.12

+0

什麼錯誤你好嗎?如果沒有錯誤,您是否可以檢查控制檯在開始輸入時正在訪問什麼控制器? – Rahi

+0

正在訪問控制器。所以我想這可能是jquery-ui兼容性問題。此外,數據不通過模型傳遞到控制器 –

+0

當我說控制器...我指的是你正在訪問的源。當你開始輸入時,它發送請求到源:「site/user_search」。什麼是它正在訪問的完整URL。另外,該AJAX請求的結果是什麼? – Rahi

回答

2

其實這項工作很好,我爲簡單起見,我刪除了模型。

在你看來

<script src="jquery-3.1.1.min.js"></script> 
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
    <script> 
    $(function(){ 
     $("#user-input").autocomplete({ 
     source: "<?php echo base_url('site/user_search'); ?>", 
     minLength: 1 
     }); 
    }); 
    </script> 
<input id="user-input" type="text" name="users" placeholder="Search User" autocomplete="on"> 

在你的站點控制器

function user_search() 
    { 

     $user = $_GET['term']; 

     $query = $this 
         ->db 
         ->select('name') 
         ->like('name',$user) 
         ->get('users'); 

     if($query->num_rows() > 0){ 
      foreach($query->result_array() as $row) { 
       $row_set[] = htmlentities(stripslashes($row['name'])); 
      } 

      echo json_encode($row_set); 
     } 
    } 
0
Set label and value in json response key 
function user_search() 
    { 

     $user = $_GET['term']; 

     $query = $this 
         ->db 
         ->select('name') 
         ->like('name',$user) 
         ->get('users'); 

     if($query->num_rows() > 0){ 
      foreach($query->result_array() as $row) { 
       $new_row['label']=htmlentities(stripslashes($row['name'])); 
       $new_row['value']=htmlentities(stripslashes($row['name'])); 
       $row_set[] = $new_row; //build an array 
      } 

      echo json_encode($row_set); 
} 
+0

通常,如果答案包含對代碼意圖做什麼的解釋,以及爲什麼解決問題而不引入其他問題,則答案會更有幫助。 –

相關問題