2011-02-01 97 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