這有點難以谷歌這一點,因爲「GET」帶來了很多「如何‘得到’與javascript中的表價值」等
問題:
TL; DR版第一
你能使用AM ulti - 從表單的GET方法中選擇並仍檢索每個單獨的值?
擴展解釋
一個搜索目錄我建立包括使用與表單GET方法,使用戶可以看到他們的結果的URL,並直接發送鏈接的要求到另一個客戶的搜索結果等。
其中一個可搜索字段是多選框(具有MULTIPLE
屬性的選擇框)。我的後端是用PHP編寫的,我通常通過將名稱設置爲數組變量(name="multiselect[]")
來處理多重選擇,並且post變量包含所選選項($_POST["multiselect"] == array())
的數組。
在這種情況下的問題是,多選值傳遞給GET字符串是這樣的:
action?multiselect=1&multiselect=2
所以不管最後一個值是替換變量在第一初始化值得到字符串。 (在上面的例子中,multiselect等於「2」)。
試圖讓一個數組只是使以同樣的方式取代了數組值的名稱,這樣
action?multiselect[]=1&multiselect[]=2
會導致$_GET["multiselect"] == 2
我原本建議使用複選框,因爲它會允許我們以不同的方式命名元素並檢查每個元素的真/假,但是對於這個特定的多重選擇有大約30個值,並且他們希望它位於可捲動區域中。
爲什麼不添加隱藏的表單元素並將多選值複製到相應的複選框。易於使用jQuery。你顯然有一個「獲得」使用的原因,但記得URLS對他們有一個有限的長度。你不能通過URL本身發送8K的數據。 –
您是否嘗試過使用foreach循環來檢查後置變量或使用$ _GET [「multiselect」]的大小? – scrappedcola
這是一個很好的觀點。在任何情況下限制他們可用的選項子集可能是一個好主意。我原本試圖保持這種形式完全可降級(不是我真正期待迎合JS關閉的人,但如果某人的JS失敗或任何事情,我們總是被覆蓋)。 我的手是否通過瀏覽器通過GET發送表單數據的方式? – NateDSaint