PHP checkbox ifadesini iki farklı şekilde kullanabiliriz, birincisi sıkça gördüğümüz tek bir checkbox ile şartları kabul etme, yani onay alma mevzusu. ikincisi listelerde birden fazla maddeyi seçip çoklu işlem yaptırma.
Checkbox ile onay işlemi
Bir checkbox ekliyoruz ve kod kısmında yalnızca elemana verdiğimiz adın gönderilip gönderilmediğine bakarak seçilip seçilmediğini anlıyoruz.
form.php:
<form action="kontrol.php" method="post">
<label><input type="checkbox" name="onay"/> Onaylıyorum</label>
<input type="submit" value="Tamam">
</form>

bu kodlamada “Onaylıyorum“a tıklandığında checkboxu harekete geçirmeyi sağlıyoruz.
kontrol.php:
if(isset($_POST['onay'])) { // checkbox seçilmişse "on" değeri gönderiliyor
echo 'Onayladınız!';
} else { // seçilmemişse bu değer sayfaya hiç gönderilmiyor
echo 'Onaylamadınız.';
}
Bu kodlama da sadece isset fonksiyonu ile seçilip seçilmediğini kontrol etmemiz gerekiyor. Eğer seçilmezse sayfaya checkboxun adında bir değer gitmiyor, eğer seçilirse de “on” değeri gönderiliyor.
Php Checkbox ile çoklu seçim ve işlem uygulama
Checkboxta çoklu seçim için array mantığını kullanıyoruz.
form.php:
<form action="kontrol.php" method="post">
<label><input type="checkbox" name="sebzeler[]" value="domates"/> domates</label><br/>
<label><input type="checkbox" name="sebzeler[]" value="salatalık"/> patlıcan</label><br/>
<label><input type="checkbox" name="sebzeler[]" value="kabak"/> kabak</label><br/>
<input type="submit" value="Tamam">
</form>
kontrol.php:
if(isset($_POST['sebzeler'])) {
$sebzeler = $_POST['sebzeler'];
echo 'Seçtiğiniz sebzeler: <br/>';
foreach($sebzeler as $sebze) {
echo ' * ' . $sebze . ' <br/>';
}
} else {
echo 'Hiç sebze seçmediniz.';
}
Checkboxların her birinin name yani isim değerine “sebzeler[]” dedik, buradan bu olayın array mantığıyla aynı derecede. Böylece her seçilen madde “Sebzeler” değerine bir array elemanı olarak ekleniyor. Daha iyi anlayabilmemiz için kontrol.php en başına print_r($_POST) yazarak gelen sonucu daha iyi görebiliriz.
Array
(
[meyveler] => Array
(
[0] => domates
[1] => salatalık
[2] => kabak
)
)

Çoklu seçilen maddeleri toplu silme uygulama
Bu olayı size bir örnekle daha net bir şekilde anlatabiliriz;
form.php
<form action="kontrol.php" method="post">
<label><input type="checkbox" name="sil[]" value="1"/> Birinci başlık</label><br/>
<label><input type="checkbox" name="sil[]" value="2"/> ikinci başlık</label><br/>
<label><input type="checkbox" name="sil[]" value="3"/> üçüncü başlık</label><br/>
<label><input type="checkbox" name="sil[]" value="4"/> dördüncü başlık</label><br/>
<input type="submit" value="Seçilileri sil">
</form>
Şimdi bu form ile birden fazla yazı seçildiğinde kontrol.php sayfasına silinecek yazılarının NO’sunu içeren “sil” adında bir array gönderilmiş olacak.
kontrol.php:
if(isset($_POST['sil'])) {
$silinecekler = implode(', ', $_POST['sil']);
mysql_query('DELETE FROM yazilar WHERE NO IN ( ' . $silinecekler . ' )');
echo count($_POST['sil']) . ' adet yazı silindi.';
}
Bu sefer gelen arrayı implode ile birleştirdik, yani eğer 1. ve 4. yazıyı seçip formu gönderirsek $silinecekler değişkeni “1, 4” şeklinde bir değer almış olacaktır. ve daha sonra içerikleri silecek, MySQL sorgusu ise şöyle olacak “DELETE FROM yazılar WHERE NO IN ( 1, 4 )” ve bu iki seçilmiş yazıyı silmiş olacağız.