2010-04-21 17 views

cevap

110

için getElementById kullanın:

<input type="submit" name="btnSubmit" value="Save Changes" /> 
<input type="submit" name="btnDelete" value="Delete" /> 

gibi görünecektir kullanmak php kodu:

if ($_SERVER['REQUEST_METHOD'] === 'POST') { 
    //something posted 

    if (isset($_POST['btnDelete'])) { 
     // btnDelete 
    } else { 
     //assume btnSubmit 
    } 
} 

Hep should formu html kaynak kodu görülen ilk teslim düğmeye varsayalım veya varsayılan .

  1. kullanıcı anlamıyla fare veya işaretleme aygıtı
  2. ile Gönder düğmesini tıkladığında Veya odak üzerinde vardır: Pratikte, çeşitli tarayıcılar güvenilir sonrası verilerle bir gönderme düğmenin adı/değerini göndermek Gönder düğmesi (buna sekmeli) ve ardından enter tuşuna basılır. Bir form göndermek için

diğer yolları var ve bazı tarayıcılar/sürümleri herhangi Böyle durumlarda bazı düğmelerini teslim ismi/değerini göndermemeyi karar verirler. Örneğin, çok sayıda kullanıcı imleç/odak bir metin alanındayken giriş tuşuna basarak formları gönderin. Formlar ayrıca javascript ve bazı daha belirsiz yöntemler yoluyla da gönderilebilir.

Bu ayrıntıya dikkat etmek önemlidir, aksi takdirde kullanıcılarınız bir form gönderdiklerinde gerçekten rahatsız olabilirler, ancak "hiçbir şey olmuyor" ve verileri kayboldu çünkü kodunuz bir form gönderimini algılayamadığından tahmin edilemedi. Gönder düğmesinin adı/değeri posta verileriyle gönderilemeyebilir. Ayrıca, her zaman numaralı bir varsayılan gönderim düğmesini almanız gerektiğinden, yukarıdaki önerilerde tek bir gönderme düğmesi bulunan formlar için yukarıdaki öneriler kullanılmalıdır.

İnternetin çok sayıda form işleyici öğreticisi ile doldurulduğunu biliyorum ve hemen hemen hepsinin bir gönderme düğmesinin adını ve değerini kontrol etmekten başka bir şey yapmıyoruz. Ama, sadece düz yanlış!

+1

Varsayılan bir düğme varsaymakla ilgili ekstra bilgi için teşekkürler ... gözden kaçırmak kolaydır. – kad81

+0

Bu neden başka bir şey yerine başka kullanır? – Buts

+0

@Gorg başka ne varsa? Ne için test edersiniz, neden? – goat

8

: PHP

<input type="submit" id="btnSubmit" name="btnSubmit" value="Save Changes" /> 
<input type="submit" id="btnDelete" name="btnDelete" value="Delete" /> 

:

if (isset($_POST["btnSubmit"])){ 
    // "Save Changes" clicked 
} else if (isset($_POST["btnDelete"])){ 
    // "Delete" clicked 
} 
+3

Üzgünüz, reddedilmeli. Göndermek için giriş anahtarını kullanırken yanlış davranan form işleyicileri benim bir evcil hayvanımdır. – goat

+2

@chris - Sorun değil, tam olarak geçerli bir nokta yaratıyorsunuz. Cevabınız kesildi. – MiffTheFox

-2

Eğer php veya javascript soruyorsun İşte benim iki düğme için biçimlendirme bu.

Eğer php'de ise, ismini verin ve post veya get yöntemini kullanın, ondan sonra isset seçeneğini kullanabilirsiniz veya bu özel buton adı bu değere göre kontrol edilir. o js ise

gibi bir html form ile bu

İlgili konular