2012-11-28 48 views
0

我需要在我的HTML页面中实现一个包含2000多个公司名称的下拉菜单。在html页面中嵌入这样一个巨大的列表将使其巨大且缓慢加载。想知道在OpenCPU/RApache中是否有交互机制以交互方式获取相同的内容。就像用户类型A一样,它应该显示以字母“A”开头的所有公司名称...从OpenCpu服务器动态获取下拉菜单列表

回答

0

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

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

UPDATE

此外,有你实际测试一个网页的下拉2000个项目?你知道它会很慢吗?如果每个项目的长度为40个字符,那将是80K的文本。浏览器可以在几毫秒内处理80K。我认为,这个问题对于加载时间不是问题,而是强迫用户在2000个条目中滚动浏览列表。

更新2

我只是做了一个开放的谷歌搜索“如何创建PHP的AJAX下拉菜单”。 Here's an example与你的相似..主要概念包括在内。尽管您会根据文本框上的onkeyup事件触发AJAX调用。

+0

ajax不是唯一的方法,但它是如果你想完全兼容 – ncubica

0

男人,你需要的是使用jQuery的autocomplet部件:

http://jqueryui.com/autocomplete/

如果你想这样做没有任何JavaScript就可以与兼容的限制,做到这一点丝毫HTML5当然。

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

+0

谢谢你们,我没有试过2000年的公司名称,但推测它会加载缓慢,会尝试自动完成功能。它只适用于一个单词标签或多个单词短语的列表。我的公司名称将会像“伯克希尔哈撒韦公司”,“塔塔钢铁公司”等多字词。 – user1783870

+0

自动完成取决于您的查询sql这里是一个例子,如何在php myslq中实现,我认为您使用的是另一种的技术,但可以为你工作http://af-design.com/blog/2010/05/12/using-jquery-uis-autocomplete-to-populate-a-form/标记答案是正确的,如果这项工作或帮你 :) – ncubica

0

我在我开发的R-支持的Web应用程序面临着类似的问题。我需要为用户提供基于12,000个基因符号的选择列表,并且我想让他们键入部分符号。我结束了使用基于JQuery的Select2。您最终会将网页中的ajax调用返回到R函数。就我而言,我在服务器端有一个函数,它接收用户键入的字符并生成部分列表(以JSON形式)以返回。我要求用户输入至少两个字符,以使列表变小。它适用于我的应用程序。