2013-10-01 29 views
1

我現在有含有的ID的JSON回調匹配的元素的名稱如下:Jquery的從JSON數組

[{"id":"1","name":"Wired Motors"}, 
{"id":"2","name":"pragma innovations"}, 
{"id":"3","name":"University of Femme Fatales"}] 

我使用的需要匹配返回的名稱部jQuery用戶界面自動完成結果並在建議下拉列表中顯示,也可以將id拖入html數據元素中。

到目前爲止,我沒有太多的運氣在匹配用戶輸入到回調的名稱部分。我能做到這一點,用乾淨數組,但不知道如何使用JSON數組做到這一點

+0

您是不是要找一些像這樣的事情http://jsfiddle.net/vinodlouis/SaDVm/1/ –

回答

1

我相信jQuery的自動完成功能使用的標準化Name => Value JSON陣列格式:

[{ "label" : "1", "value" : "Wired Motors" }, 
{ "label" : "2", "value" : "pragma innovations"}, 
{ "label" : "3", "value" : "University of Femme Fatales"}] 

SorucejQuery Autocomplete Source API

然後,您可以將其添加到自動完成源/建議:

$('#myautocomplete').autocomplete({ 
    minLength : 2, 
    source : function(request, response) { 
     $.ajax({ 
      url: 'path-to-your-script.php', 
      dataType: 'json', 
      data: '?variablestodb=somedata', 
       success: function(data) { 
       response($.map(data, function(item) { 
        return { 
         label: item.label, 
         value: item.value 
        } 
        })); 
       } 
      }); 
     }, 
     select: function(event, ui) { 

     } 
    }); 
+0

數組實際上是自動完成獲取其值的地方。由於初始請求後數據庫的大小,這將被緩存。我想我可以用你的邏輯:) – Sideshow

+0

啊對不起! :D因此,使用Autocomplete的回調之一,您希望在其他地方重新使用選定的選項?你能否展示一些你正在嘗試這樣做的代碼? – MackieeE

+0

它與從數據庫獲取數據的工作方式完全相同,只是在keyup上執行此操作會給db帶來很大的壓力。因此,在變更請求的關鍵字上將檢查希望匹配「名稱」值的緩存結果。然後,我將不得不拖動在身份證 - 問題是我似乎沒有匹配名稱部分:( – Sideshow