Bu yazıda PHP ile çoklu checkbox kullanımını ele alacağız. Çoklu checkbox kullanımını göstermeden önce PHP ile bir checkbox nasıl kontrol edileceğine bakacağız.
PHP Tek checkbox Kullanımı
Tek bir checkbox(onay kutusu) ile form oluşturalım.
1 2 3 4 5 6 7 | <form action="checkbox-form.php" method="post"> Onay kutusunu seçip onaylayın! <input type="checkbox" name="onay" value="Evet" /> <input type="submit" name="kaydet" value="Gönder" /> </form> |
PHP betiğinde (checkbox-form.php), gönderilen seçeneği $_POST dizisinden alabiliriz. $_POST [‘onay’] “Evet” ise, kutu işaretlenmiştir. Onay kutusu işaretlenmemişse, $_POST [‘onay’] ayarlanmayacaktır.
Formu işlemeye ilişkin bir PHP örneği: checkbox-form.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php if(isset($_POST['onay']) && $_POST['onay'] == 'Evet') { echo "Sözleşmeyi onayladınız."; } else { echo "Sözleşmeyi iptal ettiniz."; } ?> |
PHP Çoklu checkbox Kullanımı (Birden fazla checkbox Kontrolü PHP)
Bir formda genellikle bir grup ilgili onay kutusuna ihtiyaç duyulan durumlar vardır. Onay kutusu grubunun avantajı, kullanıcının birden fazla seçenek seçebilmesidir. (bir gruptan yalnızca bir seçeneğin seçilebildiği bir radyo grubunun aksine daha çok öğe seçme imkanı sunar). PHP ile birden fazla checkbox kontrolü yapmak için aşağıdaki örnekte börünen name kısımlarını inceleyin.
Aşağıdaki örnekte kullanıcıdan hobileri ile ilgili birden fazla değer seçmesi için bir form oluşturalım.
1 2 3 4 5 6 7 8 9 10 11 | <form action="checkbox-form.php" method="post"> Onay kutusunu seçip onaylayın! Yüzme <input type="checkbox" name="hobi[]" value="Yüzme" /><br> Futbol <input type="checkbox" name="hobi[]" value="Futbol" /><br> Kitap <input type="checkbox" name="hobi[]" value="Kitap" /><br> Voleybol<input type="checkbox" name="hobi[]" value="Voleybol" /><br> Tenis <input type="checkbox" name="hobi[]" value="Tenis" /><br> <input type="submit" name="kaydet" value="Gönder" /> </form> |
Lütfen onay kutularının aynı ada sahip olduğunu unutmayın (hobi[]). Ayrıca her adın [] ile bittiğine dikkat edin. Aynı adı kullanmak, bu onay kutularının tümünün ilişkili olduğunu gösterir. [] kullanılması, seçilen değerlere PHP betiği tarafından bir dizi olarak erişileceğini belirtir. Yani, $_POST [‘onay’] yukarıdaki örnekte olduğu gibi tek bir dize döndürmez; bunun yerine işaretlenen tüm onay kutularının değerlerinden oluşan bir dizi döndürecektir.
Örneğin, tüm kutuları işaretlersem, $_POST [‘hobi’] şunlardan oluşan bir dizi olurdu.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?php if(isset($_POST["hobi"])){ $hobi = $_POST['hobi']; $adet = count($hobi); echo "Toplam $adet hobi seçtiniz."; foreach($hobi as $h){ echo $h."<br>"; } } else { echo("Her hangi bir hobi seçilmedi"); } ?> |
Onay kutuları işaretlenmemişse, $_POST [‘hobi’] oluşturulmayacaktır ve isset($_POST[‘hobi’] NULL olacaktır. Boş değilse, count ile toplam gelen hobi sayısını alacak ve foreach ile hobileri ekrana yazdıracaktır.
Yorum Yap