Bu grup $ _POST değişkenler mümkün mü?

4 Cevap php

Ben çeşitli bölümler ile oluşur (bir iç CMS için) büyük bir form var, bazıları bazıları zorunlu isteğe bağlıdır. Bütün (bu gibi ajax hayır, başka hiçbir yolu :-( olmak zorunda) bir HUMUNGOUS formu altında

Dilbertvari her yolu her değişti yana $ _POST verileri gruplandırma herhangi basit bir yolu olup olmadığını, ikinci merak ediyordum, ben böyle POST gönderme demek:

$_POST['form1']['datax']

veya kolayca sunucu tarafında veri almak ve kolayca I declare expressily zorunda withouth ortalama:

$array1 = array($_POST['datax'],$_POST['datay'],...);

$array2 = array($_POST['dataalpha'],$_POST['dataomega'],...);

60 civarında alanlar vardır çünkü.

Ben bu kuyu açıklamak mümkün oldu ve her zaman olduğu gibi çok teşekkür ederim umarım ..

4 Cevap

Eğer giriş elemanları dizi-gibi isimler verirseniz, onlar PHP bir dizi olarak $_POST (veya $ _GET) dizi gelmesi:

<input type="text" name="foo[]" value="a"/>
<input type="text" name="foo[]" value="b" />
<input type="text" name="foo[]" value="c" />
<input type="text" name="foo[bar]" value="d" />
<input type="text" name="foo[baz][]" value="e" />
<input type="text" name="foo[baz][]" value="f" />

Gidiyor:

print_r($_POST)
foo => array (
    0 => a
    1 => b
    2 => c
    bar => d
    baz => array(
        0 => e
        1 => f
    )
)

Eğer düzgün girişleri isim varsa, bunu yapabilirsiniz. Örnek:

<input type="text" name="textInput[]" />
<input type="text" name="textInput[]" />

Bu textInput adlandırılmış $ _POST bir dizi doldurmak olacaktır. Yani:

$_POST['textInput'][0] == "whatever the first was set to be"
$_POST['textInput'][1] == "whatever the second was set to be"

Giriş isminden sonra kare parantez kullanarak PHP içinde gruplandırılmış neden olur:

<input name="foo[]" type="text" value="1" />
<input name="foo[]" type="text" value="2" />

Ayrıca bir ilişkisel dizi yapabilirsiniz:

<input name="foo[bar]" type="text" />

Ben çok boyutlu diziler de işe yarayacağını düşünüyorum, ama ben aslında bunu denedim emin değilim.

Edit: İşte aynı şey answered in the PHP FAQ.

Eğer bu gibi form alanları kullanabilirsiniz:

<input type="text" name="form1['datax']"/>