2012-09-13 20 views
0

我想使用Jquery UI-自動完成。 以下是使用自動完成的方法。如何將JSON數據源適配到Jquery自動填充小部件?

$(function() { 
    var availableTags = [ 
     "ActionScript", 
     "AppleScript", 
     "Asp", 
     "BASIC", 
     "C", 
     "C++", 
     "Clojure", 
     "COBOL", 
     "ColdFusion", 
     "Erlang", 
     "Fortran", 
     "Groovy", 
     "Haskell", 
     "Java", 
     "JavaScript", 
     "Lisp", 
     "Perl", 
     "PHP", 
     "Python", 
     "Ruby", 
     "Scala", 
     "Scheme" 
    ]; 
    $("#tags").autocomplete({ 
     source: availableTags 
    }); 
}); 

這裏定義了數組「availableTags」。但我想從一個數據源生成自動完成,這是一個返回JSON數據的服務器端腳本。任何人都可以幫助我適應該數據源自動完成?

使用MVC架構(笨),並使用在控制器以下方法來返回JSON數據,

function supcode(){  
    $dataarray=""; 
    $data=$this->Inventorymodel->supcode(); 
    echo json_encode($data); 
} 

,我使用下面的函數取在模型中的數據,林

function supcode(){ 
    $finresult=""; 
    $this->db->select('name'); 
    $query = $this->db->get('supplier'); 
    $result=$query->result_array(); 

    foreach($result as $row){ 
     $finresult[]=array(
      'name' => $row['name'] 
     ); 
    } 
    return $finresult; 
} 

而這裏是控制器的功能supcode的網址, 「index.php/inventory/supcode」

在此先感謝.....

+0

看到我對這個鏈接的HTTP答案: //stackoverflow.com/questions/12072922/ajax-autocomplete-from-array/12074562#12074562 讓我知道,如果有需要幫助 –

回答

1

試試這個

source: 'index.php/inventory/supcode', 

並更換

foreach($result as $row){ 
     $finresult[]=array(
     'name' => $row['name'] 
     ); 
    } 

foreach($result as $row){ 
    $finresult[]=$row['name']; 
} 
+0

我都嘗試過,但自動完成犯規工程... –

+0

檢查什麼回報服務器螢火蟲和supcode取代$ finresult [] = $ row ['name'] – voodoo417

+0

[{「name」:「abcd」},{「name」:「efgh」},{「name」:「klmn」}]這是負責進入螢火蟲.....當我輸入一個字母在文本框中出現一個空白列表... –

1

不要用數組包裹的名字,只是做:

foreach($result as $row){ 
    $finresult[]= $row['name']; 
} 

而且在JavaScript方面,設置source與網址:

source: 'index.php/inventory/supcode', 
+0

感謝mate..it工程... :) –

+0

現在我有一個問題。數據不是過濾。當我在文本框中鍵入一個字母時,所有值都會在自動完成列表中列出,而不進行過濾。檢查這裏的截圖。 4shared.com/photo/I9rqlh8w/Capture_2.html? –

+0

@BasimSherif你需要在服務器端進行過濾。 – xdazz

相關問題