您好我正在使用jQuery并从我的一个mySQL表中检索“items”。我在该表中有大约20,000个“项目”,它将在我的表单中用作搜索参数。所以基本上他们可以搜索包含“项目”的“购买”。
现在我需要他们能够从下拉列表中选择“项目”,但是用20,000个“项目”填充下拉列表需要很长时间。我想知道是否有任何jQuery插件支持自动完成下拉框的分页。
这样,用户可以开始键入过滤列表的前几个字母,或者只需单击箭头即可看到20个项目,最后一个是“请点击更多”。
我对处理大型数据集和使用所述数据集填充HTML选择框的任何其他建议持开放态度。
此搜索页面上可能有多个选择框,用户可以选择“项目”或“客户”或其他任何内容,然后单击“搜索”。
答案 0 :(得分:4)
我认为没有针对你所追求的特定插件,但你应该能够很容易地自己编写一个插件。
基本上这个概念是这样的:
$.ajax
从数据库中检索数据<option>
请点击了解更多... < /强> $.ajax
事件(它的索引将是20,因为它是列表中的第21项)并将<option>
绑定到该onchange
PHP/mySQL
您发送到数据库的pageIndex 如果您需要{{1}}中的分页方面的更多帮助,请查看此tutorial。
答案 1 :(得分:4)
答案 2 :(得分:2)
20000项目对于任何类型的下拉列表来说都太大了,除非该列表仅返回响应搜索的项目,最好是包含至少几个字符的搜索。 “点击更多”似乎很弱,并不是下拉列表的典型行为。如果用户想要的项目是列表中的10000个项目怎么办?
假设您的项目是简单的名称/值对(字符串名称,整数ID等)。
然而,JSON可以轻量级方式表示20000个项目。您可以创建一个简单的客户端对话框(或列表),它绑定到这些项目,通过它们的页面,并提供实时过滤。这绝对是可能的(我已经完成了)但它需要相当数量的自定义脚本或现有控件。
这种方法的优点是你可以在每次击键时进行实时搜索。令人惊讶的是,JavaScript将非常容易地处理大型数据集上的简单搜索。
如果性能很关键,即使在JSON中,20000项仍然太大。将客户端脚本与用于搜索,过滤,分页等的服务器代码相结合,仅向用户显示一组有限的结果。
编辑:如果您不想编写自己的数据表控件,这里有一个使用JSON的网格的可能选项:http://developer.yahoo.com/yui/examples/datatable/