从OpenCpu服务器动态获取下拉菜单列表



我需要在拥有2000多个公司名称的HTML页面中实现一个下拉菜单。在html页面中嵌入这样一个巨大的列表会使其庞大且加载缓慢。所以想知道OpenCPU/RPache中是否有一种交互机制可以交互获取相同的内容。就像用户键入A一样,它应该显示所有以字母"A"开头的公司名称。。。

在HTML页面中,在不重新加载页面的情况下从服务器交互式获取数据的唯一方法是使用AJAX。您可以创建一个数组来保存所有提取的值,这样就不必重新提取已经检索到的名称。

在服务器上,您需要创建一个页面,根据某些条件(例如用户键入的字母)返回企业名称列表。

更新

另外,你真的测试过一个下拉列表中有2000个项目的页面吗?你知道它会很慢吗?如果每个项目的长度为40个字符,则相当于80K的文本。浏览器可以在几毫秒内处理80K。我认为,问题不是加载时间的问题,而是迫使用户滚动浏览包含2000个条目的列表。

更新2

我刚刚在谷歌上公开搜索了"如何使用php创建ajax下拉列表"。这里有一个与你相似的例子。。涵盖了主要概念。尽管您会根据文本框上的onkeyup事件触发AJAX调用。

您需要的是一个使用jquery的自动完成小部件:

http://jqueryui.com/autocomplete/

如果你想在没有任何javascript的情况下完成它,你当然可以使用html5,但有兼容性的限制。

http://css-tricks.com/relevant-dropdowns-polyfill-for-datalist/

我在开发的一个R支持的web应用程序中遇到了类似的问题。我需要为用户提供一个基于12000个基因符号的选择列表,我想让他们输入部分符号。我最终使用了基于JQuery的Select2。您最终使用了一个从网页返回到R函数的ajax调用。在我的例子中,在服务器端,我有一个函数,它在用户键入时接收字符,并生成一个要返回的部分列表(JSON)。我要求用户至少输入两个字符,以便缩小列表。它对我的申请很有效。

最新更新