我遇到了一个问题,我需要根据人名来显示文本字段下方的建议/自动完成结果。我应该将所有人加载到列表中并在启动时排序为集合,还是可以按名称在数据库中进行索引,并且只能选择人员名称以给定字符序列开头的SELECT行?
当然,我宁愿不必在内存中保留一个可能很大的列表,所以如果有人可以建议我如何在这里使用SQL那将是非常棒的,谢谢。
答案 0 :(得分:2)
我认为将所有内容放在收集中将是整个名称的开销
方法
答案 1 :(得分:2)
在数据库中查询您的表:如果您每次都进行数据库调用,这将会相对较慢。
在中间层存储:这将比db调用更快。但在这里你可以使用多种方法。
1)从DB获取数据并存储
2)预先填充缓存,然后查询缓存。
在客户端存储:将数据/名称存储在js文件中,并使用js库以高效的方式执行搜索。我试过这个js库,发现它很不错WICK: Web Input Completion Kit 此外,现在html 5支持本地存储,因此您也可以对此进行评估。
所以你需要评估所有选项,然后找到你需要的 ONE 。
答案 2 :(得分:1)
提供AJAX函数,该函数是用户name like 'input%' to DB
的获取列表。
在您的输入字段中调用此函数onkeyPress()
事件
答案 3 :(得分:0)
自动完成意味着根据用户输入的字符搜索结果,我只是使用此查询检索与模式匹配的行。
SELECT uname FROM table WHERE uname like 'cha%';
此处cha
是用户的输入。
自动完成将检索
chaten
chaitanya
charles
答案 4 :(得分:0)
我建议您使用jQuery
,这有助于在您输入字段时提供建议。这是demo
数据源将是返回JSON数据的服务器端脚本, 通过source-option的简单URL指定。除此之外 minLength-option设置为2以避免返回的查询 许多结果和选择事件用于显示一些反馈。
答案 5 :(得分:0)
您可以使用SELECT * FROM TABLE_NAME WHERE NAME LIKE %manu%
之类的查询
如果您想要搜索选项