2012-11-28 91 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形式)以返回。我要求用戶輸入至少兩個字符,以使列表變小。它適用於我的應用程序。