如何使用数千个条目的自动完成?

时间:2010-06-23 22:41:24

标签: php jquery sql codeigniter autocomplete

有没有办法在PHP / jQuery中设置自动完成功能,可以快速运行数据库中的数千行?

我有一个用户进入他/她的大学的工作板 - 我想提供自动完成功能。问题是,美国有4,500所大学,这似乎是一个糟糕的解决方案。

是否有一种很好的方法可以快速进行查询,只有当可用选项少于10时才返回结果?

提前谢谢你, 沃克

5 个答案:

答案 0 :(得分:5)

我同意Anax。您可能希望查看一个简单的解决方案,例如新的jQuery UI Autocomplete field

使用delay和minLength选项,可以防止脚本查询服务器,直到用户输入说三个字符,这会减少结果的数量。

PS。还有一个可能有用的缓存选项。您可以缓存客户端的整个列表,减少对数据库的调用。

答案 1 :(得分:3)

考虑到记录的数量,最好的办法是使用AJAX。基本上,您需要监视击键并调用PHP脚本,然后PHP脚本将从数据库中获取相关记录。

一个很好的例子是dhtmlxCombo

答案 2 :(得分:2)

您可以首先要求其他限定符,例如“所需地区/州”,“专业”等,然后在用户输入6个或更多字符后过滤掉4,500所大学中的更多,开始自动完成?

答案 3 :(得分:0)

4500并不是太多,取决于您的硬件/用户数/您真正需要它的频率,您可以将List保留在内存中(MySQL Memory engine为例)。
但是,正如已经建议的那样,只有在有3个字母+的情况下获得结果时,你甚至可能根本没有问题。

答案 4 :(得分:0)