我需要在我的HTML頁面中實現一個包含2000多個公司名稱的下拉菜單。在html頁面中嵌入這樣一個巨大的列表將使其巨大且緩慢加載。想知道在OpenCPU/RApache中是否有交互機制以交互方式獲取相同的內容。就像用戶類型A一樣,它應該顯示以字母「A」開頭的所有公司名稱...從OpenCpu服務器動態獲取下拉菜單列表
回答
從HTML頁面,在不重新加載頁面的情況下交互地從服務器獲取數據的唯一方法是使用AJAX。您可以創建一個數組來保存所有已提取的值,以便您不必重新獲取已檢索的名稱。
在服務器上,您需要創建一個頁面,該頁面根據某些條件(例如用戶鍵入的字母)返回商業名稱列表。
UPDATE
此外,有你實際測試一個網頁的下拉2000個項目?你知道它會很慢嗎?如果每個項目的長度爲40個字符,那將是80K的文本。瀏覽器可以在幾毫秒內處理80K。我認爲,這個問題對於加載時間不是問題,而是強迫用戶在2000個條目中滾動瀏覽列表。
更新2
我只是做了一個開放的谷歌搜索「如何創建PHP的AJAX下拉菜單」。 Here's an example與你的相似..主要概念包括在內。儘管您會根據文本框上的onkeyup
事件觸發AJAX調用。
男人,你需要的是使用jQuery的autocomplet部件:
http://jqueryui.com/autocomplete/
如果你想這樣做沒有任何JavaScript就可以與兼容的限制,做到這一點絲毫HTML5當然。
http://css-tricks.com/relevant-dropdowns-polyfill-for-datalist/
謝謝你們,我沒有試過2000年的公司名稱,但推測它會加載緩慢,會嘗試自動完成功能。它只適用於一個單詞標籤或多個單詞短語的列表。我的公司名稱將會像「伯克希爾哈撒韋公司」,「塔塔鋼鐵公司」等多字詞。 – user1783870
自動完成取決於您的查詢sql這裏是一個例子,如何在php myslq中實現,我認爲您使用的是另一種的技術,但可以爲你工作http://af-design.com/blog/2010/05/12/using-jquery-uis-autocomplete-to-populate-a-form/標記答案是正確的,如果這項工作或幫你 :) – ncubica
我在我開發的R-支持的Web應用程序面臨着類似的問題。我需要爲用戶提供基於12,000個基因符號的選擇列表,並且我想讓他們鍵入部分符號。我結束了使用基於JQuery的Select2。您最終會將網頁中的ajax調用返回到R函數。就我而言,我在服務器端有一個函數,它接收用戶鍵入的字符並生成部分列表(以JSON形式)以返回。我要求用戶輸入至少兩個字符,以使列表變小。它適用於我的應用程序。
- 1. php動態下拉菜單獲取值
- 2. PHP動態下拉菜單列表
- 3. 獲取從下拉菜單
- 4. 動態下拉菜單的兩列
- 5. as3動態下拉菜單
- 6. PHP動態下拉菜單
- 7. 動態下拉菜單 - PHP
- 8. 動態下拉菜單 - AngularFire2
- 9. 動態下拉菜單
- 10. 獲取下拉菜單
- 11. jquery下拉菜單雙下拉列表
- 12. 獲取所選服務器端下拉列表中的值Vb.Net
- 13. 下拉列表javascript菜單
- 14. CSS列表下拉菜單
- 15. JQuery下拉菜單列表
- 16. 從下拉菜單和填充列表
- 17. 從下拉菜單列表項
- 18. 從上一個下拉菜單中選擇動態填充下拉菜單
- 19. PHP:從下拉列表中動態獲取值?
- 20. 動態下拉列表 - 從mysql獲取值
- 21. 從動態創建的下拉列表中獲取值
- 22. 從動態下拉列表中獲取價值
- 23. 在JSF中動態獲取多個下拉菜單
- 24. 如何獲取動態表單中選擇下拉菜單的名稱或ID
- 25. 從服務器端動態加載的下拉列表無法從服務器端提交訪問
- 26. 填充下拉菜單 - 從服務器中選擇的選項
- 27. PHP動態下拉菜單列表 - 默認值
- 28. 如何在JavaScript中動態創建下拉菜單列表?
- 29. 如何引導下拉菜單,其中下拉列表中動態填充
- 30. 從動態數據庫動態CSS下拉菜單
ajax不是唯一的方法,但它是如果你想完全兼容 – ncubica