Göndermek için düğmeye öğesi kullanıyorsanız formları tanımlamak için bir yolu var mı?

3 Cevap php

Ben benim formları göndermek için düğmeye elemanı kullanılarak başladık

<button type="submit">Send</button>

Ben şöyle bir giriş elemanı kullanıldığı takdirde, ben kolayca formu (Aşağıdaki örnekte $_POST['form'] değerini okuyarak) sunuldu PHP belirlemek olabileceğini biliyorum.

<input type="submit" value="Send" name="form" value="contact" />

Düğmesi öğesini kullanarak bunu yapmak için bir yolu var mı? Şeklinde başına bir düğmesi eleman olacaktır. Ben IE6 bir form birden fazla düğme elemanları ile sorunları olduğunu biliyorum, ve IE7 yerine değerin innerHTML gönderir.

Bu güvenilir olurdu?

HTML

<button type="submit" name="form-contact" value="true">Send</button>

PHP

if (isset($_POST['form-contact'])) {
    // Contact Form submitted
}

Çok teşekkürler

3 Cevap

Bu soru, ancak her zaman formlarını ayırt etmek için gizli girişlerini kullanabilir doğrudan bir cevap değildir:

<form>
<input type="hidden" name="form-name" value="form-1" />
</form>

Başka bir form:

<form>
<input type="hidden" name="form-name" value="form-2" />
</form>

Formu işleyen komut farklı biçimleri ayırt etmek gerekiyorsa o güvenilir bir çapraz tarayıcı, çünkü sen, bir gizli girişini kullanmak gerekir. Farklı bir form elemanı odak ederken kullanıcı girmek tuşu ile formu gönderdiğinde, bazı tarayıcılar sadece teslim düğmenin ad / değer çifti göndermek olmaz çünkü göndermek düğmenin adı / val için test çok güvenilir değildir. Bu ortak senaryoda başarısız Form işlemciler gerçekten topal. düğme, giriş tipi = düğme ve input type = görüntü tüm çapraz tarayıcı tutarsızlıkları var.

Nadiren bile aslında gizli giriş gerekir. Sen sadece farklı formlar için farklı giriş adları kullanabilirsiniz. örneğin isim = contact_email, name = order_email vb. ve sonra sadece bir formu kimliğini belirlemek için var olan test edin. Ancak, bu daha karmaşık alır ve ben şahsen sadece orada gizli giriş koyabilirsiniz zaman ekstra çabaya değer hissetmiyorum.

Eğer butona tıkladım karşılık form_name göndermek için AJAX kullanabilirsiniz, sadece url boyunca formun adını gömmek