1

,我有以下代碼:自動完成Jquery的不顯示我使用<a href="http://jqueryui.com/autocomplete/" rel="nofollow">Jquery autocomplete</a>結果

客戶端:

$("#tags").autocomplete({ 
    source: function(request, response) { 
     $.ajax({ 
      url: "get_professionals", 
      data: request, 
      dataType: "json", 
      type: "POST", 
      success: function(data){ 
       alert("hello"); 
      } 
     }); 
    } 
}); 

服務器端:

function get_professionals() { 
    if ($_POST["term"]): 
     $professionals = Professional::find('all', array('conditions' => "name LIKE '%" . $_POST["term"] . "%'")); 
     foreach ($professionals as $professional): 
      echo $professional->to_json(); 
     endforeach; 
    endif; 
} 

的URL是正確的,實際上,我從服務器獲得結果(我在Firebug的「post」選項卡中檢查了它),但沒有顯示

+0

使用'response'爲AJAX成功的回調,或忘記了自己的Ajax,只是通過網址爲'source'值。查看演示 – charlietfl

+1

我不確定您是否將專業人員列表正確轉換爲JSON。列表需要看起來像是[{},{},{}]'不是'{} {} {} – LukeGT

+0

來自服務器的數據是什麼樣的? –

回答

1

The autocomplete requires a label and/or value field to be returned in the data.

陣列:一種陣列可用於本地數據。有兩種支持格式:

字符串數組:[ 「選擇1」, 「選擇2」]

對象數組與標籤和value屬性:[{標籤: 「選擇1」,值「 value1「},...]

標籤屬性顯示在建議菜單中。當用戶選擇一個項目時,該值將被插入到輸入元素中。如果只指定了一個屬性,則它將用於兩個屬性,例如,如果僅提供值屬性,則該值也將用作標籤。

調整你的查詢返回你想要的東西在自動完成在value和/或label領域。

SELECT name AS label, id AS value from professionals..... 

或者其他一些方法來返回值,如上面的文檔中的粗體示例。例如,你可以在成功的功能設置labelvalue領域:

success: function(data) { 
    response($.map(data, function(item) { 
     return { 
       label: item.name, 
       id: item.id 
       }; 
     })); 
     } 
相關問題