Grup yazı için diziye kutularını seçin?

3 Cevap php

Ben bir diziye multi-select form nesnesi ve grup verileri üzerinden veri göndermek için biliyorum:

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

"Tek" değerleri ile birden fazla farklı seçme kutuları var ve bir diziye hepsini itmek mümkün mü? yani

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

sonuç olurdu

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

Ne mümkün değilse bir diziye seçer gelen verileri birleştirmek için iyi bir yol olurdu?

3 Cevap

Ah, birden kaldırarak iş gibi görünüyor. Eğer varsa Zend Framework FormSelect yardımcısı otomatik olarak "[]" form eleman adına ve ben fark etmedi ekledi.

Bu sayfadaki tüm <select> 's alıyoruz varsayalım:

// 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);
}

Muhtemelen bunu yapabilir iken ben bunu tavsiye etmem. Bu kodu okuma başkasından olduğu açık değildir diye.

Daha iyi bir yaklaşım onları serverside birleştirmek için basitçe. Varsayarsak:

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

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

PHP tarafında:

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