Saya memiliki formulir yang sedikit rumit dan saya berharap untuk menyederhanakan pemrosesan sisi server (PHP) dengan secara native mem-POST array tupel.
Bagian pertama dari formulir mewakili Pengguna :
- Nama depan
- Nama keluarga
- Surel
- Alamat
- dll
Bagian kedua dari formulir mewakili Pohon :
- Buah
- Tinggi
- dll
Masalahnya adalah saya harus bisa POST beberapa Pohon untuk satu Pengguna dalam bentuk yang sama. Saya ingin mengirim informasi sebagai Pengguna tunggal dengan larik Pohon tetapi ini mungkin terlalu rumit untuk dilakukan dengan formulir. Satu-satunya hal yang terlintas dalam pikiran adalah menggunakan javascript untuk membuat beberapa pesan JSON dengan objek User dan array objek Tree. Tetapi alangkah baiknya menghindari javascript untuk mendukung lebih banyak pengguna (beberapa orang menonaktifkan skrip).
Jawaban:
lihat yang ini.
<input type="text" name="firstname"> <input type="text" name="lastname"> <input type="text" name="email"> <input type="text" name="address"> <input type="text" name="tree[tree1][fruit]"> <input type="text" name="tree[tree1][height]"> <input type="text" name="tree[tree2][fruit]"> <input type="text" name="tree[tree2][height]"> <input type="text" name="tree[tree3][fruit]"> <input type="text" name="tree[tree3][height]">
itu harus berakhir seperti ini dalam array $ _POST [] (format PHP untuk visualisasi yang mudah)
$_POST[] = array( 'firstname'=>'value', 'lastname'=>'value', 'email'=>'value', 'address'=>'value', 'tree' => array( 'tree1'=>array( 'fruit'=>'value', 'height'=>'value' ), 'tree2'=>array( 'fruit'=>'value', 'height'=>'value' ), 'tree3'=>array( 'fruit'=>'value', 'height'=>'value' ) ) )
sumber
tree[tree 1][fr ui_t]
tree[tree.1][fru:it]
tree[tree@1][fru,it]
Apakah _ hanya pembatas aman dalam penamaan kunci?tree[][fruit]
dantree[][height]
tidak valid untuk mengindeks array secara otomatis?new formData($("form")[0])
dan jQuery$("form").serializeArray()
keduanya kembaliname="tree[tree1][fruit]"
sebagai string .... help.serialize()
atau.serializeArray()
Anda juga dapat memposting banyak input dengan nama yang sama dan menyimpannya ke dalam array dengan menambahkan tanda kurung siku kosong ke nama input seperti ini:
<input type="text" name="comment[]" value="comment1"/> <input type="text" name="comment[]" value="comment2"/> <input type="text" name="comment[]" value="comment3"/> <input type="text" name="comment[]" value="comment4"/>
Jika Anda menggunakan php:
print_r($_POST['comment'])
Anda akan mendapatkan ini:
Array ( [0] => 'comment1' [1] => 'comment2' [2] => 'comment3' [3] => 'comment4' )
sumber