簡體   English   中英

將選擇框分組到數組中以便發布?

[英]Group select boxes into array for post?

我知道如何通過多選表單對象發送數據並將數據分組到一個數組中:

<select name="my_data[]" multiple="multiple"/>

是否可以使用具有“單個”值的多個不同選擇框並將它們全部推入陣列?

<select id="select-1" name="my_data[]"/>
<select id="select-2" name="my_data[]"/>

結果會是

[
    0 => {value of select-1},
    1 => {value of select-2}
]

如果不可能,將選擇數據組合成數組的好方法是什么?

啊,只是刪除多個似乎工作。 當你的表單元素名稱中有“[]”時,Zend Framework的FormSelect助手會自動添加它,我沒有意識到這一點。

雖然你可能會這樣做但我不推薦它。 只是因為從其他人那里讀取代碼並不清楚。

更好的方法就是將它們與服務器端組合在一起。 假設:

<select id="select-1" name="data_1[]"/>
...

<select id="select-2" name="data_2[]"/>
...

在PHP方面:

$data1 = $_POST['data_1'];
$data2 = $_POST['data_2'];
$combined = array_merge($data1, $data2);

這假設您在頁面上獲得了所有<select>

// get all selects
var boxes = document.getElementsByTagName("select"),
    arr = []; // your final values array

// for each select, pull out the value and push it into 'arr'
for(var i = 0, len = boxes.length; i < len, i++) {
  arr.push(boxes[i].value);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM