2011-02-01 91 views
0

我正在使用JSON自動完成與JSON,但生成的數據顯示不正確。如果您訪問http://whatsmybeer.com並輸入「firestone」,則會顯示一個下拉列表,其中顯示的結果數量正確的是「未定義」,但JSON顯示不正確。您可以看到從javascript http://whatsmybeer.com/search.inc.php?beer=firestone&callback=調用的JSON輸出示例?jQuery自動完成無法正確顯示

我的JS腳本顯示JSON結果。

<script> 
    $(document).ready(function() { 
     $("#REMOTE").autocomplete({ 
      source: function(request, response) { 
       url = "search.inc.php?beer=" + request.term; 
       $.getJSON(url + '&callback=?', function(data) { 
        response(data); 
       }); 
      } 
     }); 
    }); 
</script> 

我在做什麼錯誤的解析?

+0

您的網站幾乎崩潰的firefox對我來說。那麼你在做什麼解析? – Victor 2011-02-01 20:08:16

+0

這可能有幫助:http://stackoverflow.com/questions/1592048/jquery-autocomplete-with-json-response – 2011-02-01 20:11:32

回答

0

首先,我會limit the search result to 10或其他任何東西 - 第一反應與thousends或任何數量的啤酒,當它試圖處理數據顯示時,殺死瀏覽器。

而且我的autocompleteminLength選項,把一個字母設置爲2是矯枉過正服務器端彷彿有人將進入「A」它可能會返回數據庫的一半(如果你不喜歡,包括返回數量限制)輸入第二個字母后添加自動完成功能更加自然,特別是對於大型數據庫。

而最重要的是 - 您需要讓您的JSON響應以正確的方式格式化。

返回對象有:

{ 
    beer_name: "name" 
} 

,你應該返回:

{ 
    label: "autocomplete display value", 
    value: "input value after selection" 
} 

如果標籤和值是相同的,應該足以提供只是label,你應該能夠安全省略重複它在value