Çoğu kişi, basılan form düğmesini sadece bir ad / değer çifti vererek ayırt edebileceğinizin farkında değil. Örneğin
<form action="process" method="post">
...
<input type="submit" name="edit" value="Edit">
<input type="submit" name="delete" value="Delete">
<input type="submit" name="move_up" value="Move up">
<input type="submit" name="move_up" value="Move down">
</form>
Sunucu tarafında, basılan gerçek düğme, yalnızca düğme adıyla ilişkili istek parametresinin varlığı kontrol edilerek elde edilebilir. Değilse null
, düğmeye basılmıştır.
Gördüğüm çok ait gereksiz JS hack / form eylemi değiştirme veya gizli giriş değerini değiştirerek önceden düğmeye basıldığında bağlı örneğin bunun için geçici çözümler. Bu sadece şaşırtıcı.
Ayrıca, tablo satırlarında olduğu gibi birden çok onay kutusunun işaretli olanlarını toplamak için neredeyse çok sayıda JS hack / geçici çözüm gördüm. Bir tablo satırının her seçiminde / kontrolünde, JS, satır dizinini, daha sonra sunucu tarafında bölünecek / ayrıştırılacak olan gizli bir giriş öğesindeki virgülle ayrılmış bir değere ekler. Bu, birden çok girdi öğesine aynı adı ancak farklı bir değeri verebildiğiniz ve bunlara sunucu tarafında bir dizi olarak erişebildiğinizin farkında olmamanın bir sonucudur . Örneğin
<tr><td><input type="checkbox" name="rowid" value="1"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="2"></td><td> ... </td></tr>
<tr><td><input type="checkbox" name="rowid" value="3"></td><td> ... </td></tr>
...
Farkında olmama, her onay kutusuna farklı bir ad verir ve tüm değer özniteliğini atlar. Bazı JS hack / geçici çözüm içermeyen durumlarda , kontrol edilen öğeleri ayırt etmek için sunucu tarafı kodunda gereksiz yere ezici bir sihir de gördüm .