Tüm form alan adlarını görüntüleniyor ama onay kutusu en ve radyolar alanları göstermek yok

2 Cevap

i have an html form full of text fields, checkbox's , and radio fields. i wanted to get all the names of the fields so that i can get started in validating the information in them.

ben onları almak için kullanıyorum yöntemidir

if(isset($_POST['submit'])) {
    foreach($_POST as $name => $value) {
    print $name."<br/>";
    }
}

ama ben sadece metin kutusu ve textarea alan adlarını görüntüler ettim ve bu sunulması yoluyla onay kutusu ve radyo alan adlarını içermez. i bu alan adlarını kapmak için bir şey eklemek gerekiyor?

2 Cevap

Kutularını ve radyo düğmeleri biraz farklı standart girişler daha çalışmak. Bir onay kutusu form üzerinde varsa o mutlaka o çıkan POST bilgiler mevcut olacağı anlamına gelmez. Aslında (kutuların işaretli ve radyo düğmeleri seçilir) işaretlenmiş ise yerine, bu değerler sadece Avialable olacaktır. PHP kendi değeri için test etmek için uygun bir yol alan değerini denetlemek için değil, isset() ilk kontrol etmek değildir.

Bir onay kutusu için:

$data['my_checkbox'] = isset($_POST['my_checkbox']) ? 'on' : 'off';

ve bir radyo düğmesi için:

$data['my_radio'] = isset($_POST['my_radio']) ? $_POST['my_radio'] : false;

Biraz daha açıklayıcı olması için en aşağıdaki formu var diyelim:

<form action="test.php" method="post">
  <input type="text" name="email" value="" />
  <input type="checkbox" name="active" value="Yes" />
  <input type="submit" value="Submit" />
</form>

Ben 'test@email.com' ama not onay kutusunu işaretleyin bir e-posta değeri ile bu formu göndermek için olsaydı ben $ _POST aşağıdaki olurdu:

Array (
  'email' => 'test@email.com'
)

Ben aynı e-posta adresine and onay kutusunu işaretleyin ile aynı formu göndermek için olsaydı Ancak, ben şu olurdu:

Array (
  'email' => 'test@email.com',
  'active' => 'Yes'
)

Umut olur.

. 0 / ham yayınlanan verileri görmek için aşağıdaki kodu kullanarak deneyin:

echo '<pre>';
print_r($_POST);
echo '</pre>';

1.. / Eğer onay kutusu ve radyo girişler için bir isim öznitelik değeri kullandığınızdan emin olun.

Tipik olarak onay kutuları için, bir dizi olacak.

<input type="checkbox" id"=fruit-apple" name="fruits[]" value="apple" />
<input type="checkbox" id="fruit-pear" name="fruits[]" value="pears" />

2.. / Onlar form etiketinin içine oturup emin olun.

3.. / Eğer bir javascript çağrısı kullanarak gönderirseniz, javascript devre dışı bırakmayı deneyin ve hata kalırsa bakın. Öyle değilse, sizin javascript suçlu olduğunu biliyorum.