Forumda yenilikler devam etmektedir , çalışmalara devam ettiğimiz kısa süre içerisinde güzel bir görünüme sahip olduk daha iyisi için lütfen çalışmaların bitmesini bekleyiniz. Tıkla ve Git
x

Son konular

PHP ile checkbox kullanımı

Hoş geldin! buraktpcc tarafından topluluğumuza katılmaya davet edildiniz. Kaydolmak için lütfen burayı tıklayın.

admin

(¯´•._.• Webmaster •._.•´¯)
Yönetici
Modaratör
Katılım
Ara 27, 2022
Mesajlar
210
Etkileşim
3,941
Puan
0
Yaş
37
Konum
Adana
Web sitesi
forumdas.com.tr
F-D Coin
3,884
Daha önce şu yazıda HTML’de checkbox ve radio button kullanımı örneğini göstermiştim. Fakat checkbox’un HTML ve PHP ile kullanımı normal form elemanlarından biraz farklı.

Checkbox olayını iki farklı şekilde kullanabiliriz, birincisi sıkca gördüğümüz tek bir checkbox ile şartları kabul etme, onay alma mevzusu. Diğeri ise listelerde birden fazla maddeyi seçip çoklu işlem yaptırma.

Checkbox ile onay işlemi​

Genellikle formların sonlarında şartları kabul edilmesinde kullanılan tek bir checkbox hazırlamanın çok fazla bir espirisi yok. Bir checkbox ekliyoruz ve PHP kısmında yanlızca elemana verdiğimiz adın gönderilip gönderilmediğine bakarak seçilip seçilmediğini anlıyoruz.

form.php:

1
2
3
4
<form action="kontrol.php" method="post">
<label><input type="checkbox" name="onay"/> Onaylıyorum</label>
<input type="submit" value="Tamam">
</form>
Önizleme:

Onaylıyorum

Checkbox elemanını başlığı ile label arasına alarak “Onaylıyorum“a tıklandığında da checkboxu tetiklemesini sağlıyoruz.

kontrol.php:

1
2
3
4
5
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 tür kullanımda checkboxa value yani değer tanımlamamıza gerek yok, çünkü sadece isset fonksiyonu ile seçilip seçilmediğini kontrol etmemiz yeterli. Eğer seçilmezse sayfaya checkboxun adında bir değer gitmiyor, eğer seçilirse de “on” değeri gönderiliyor.

Checkbox ile çoklu seçim ve işlem uygulama​

Listelerde birden fazla maddeyi checkbox ile seçip toplu işlemler yapmak için bir array mantığı uygulayacağız.

form.php:

1
2
3
4
5
6
7
<form action="kontrol.php" method="post">
<label><input type="checkbox" name="meyveler[]" value="elma"/> Elma</label><br/>
<label><input type="checkbox" name="meyveler[]" value="armut"/> Armut</label><br/>
<label><input type="checkbox" name="meyveler[]" value="cilek"/> Çilek</label><br/>
<label><input type="checkbox" name="meyveler[]" value="muz"/> Muz</label><br/>
<input type="submit" value="Tamam">
</form>
kontrol.php:

1
2
3
4
5
6
7
8
9
10
11
if(isset($_POST['meyveler'])) {
$meyveler = $_POST['meyveler'];

echo 'Seçtiğiniz meyveler: <br/>';

foreach($meyveler as $meyve) {
echo ' * ' . $meyve . ' <br/>';
}
} else {
echo 'Hiç meyve seçmediniz.';
}
Checkboxların her birinin name yani isim değerine “meyveler[]” dedik, buradan bu olayın array mantığıyla işlediğini daha iyi anlayabilirsiniz. Böylelikle her seçilen madde “meyveler” değerine bir array elemanı olarak ekleniyor. PHP tarafına ise bu POST değişkeni array olarak gönderiliyor.

Daha iyi anlamak için kontrol.php en başına print_r($_POST) yazarak gelen sonucu net şekilde görebilirsiniz:

1
2
3
4
5
6
7
8
9
10
Array
(
[meyveler] => Array
(
[0] => elma
[1] => cilek
[2] => muz
)

)

Çoklu seçilen maddeleri toplu silme uygulama​

Yukarıdaki örnekte nasıl çoklu seçenek yapılacağını ve PHP’de nasıl karşılandığını örnek gösterdim. Bu yönteme bir de toptan içerik silme örneği gösterebilirim.

Bunun için ekranda veritabanından listelenmiş içerik örnekleri olduğunu varsayalım.

form.php

1
2
3
4
5
6
7
<form action="kontrol.php" method="post">
<label><input type="checkbox" name="sil[]" value="1"/> Birinci yazının başlığı</label><br/>
<label><input type="checkbox" name="sil[]" value="2"/> Bir diğer yazı başlığı</label><br/>
<label><input type="checkbox" name="sil[]" value="3"/> Başka yazı</label><br/>
<label><input type="checkbox" name="sil[]" value="4"/> Sonuncu yazı</label><br/>
<input type="submit" value="Seçilileri sil">
</form>
Bu sefer checkboxlara “sil[]” ismini tanımladık ve değerlerine her yazının NO’sunu yazdık. Ş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ş olucak.

kontrol.php:

1
2
3
4
5
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önderirsem $silinecekler değişkeni “1, 4” şeklinde bir değer almış olacak. Sonuç olarakta içerikleri silecek MySQL sorgumuz ise şöyle olacak “DELETE FROM yazilar WHERE NO IN ( 1, 4 )” ve bu iki seçilmiş yazıyı silmiş olacağız.

Bir sonraki PHP serüveninde görüşmek üzere!
 

Similar threads

Bu yazıda PHP'yi kullanarak web siteniz için nasıl bir üyelik sistemi (giriş / kayıt) oluşturacağınızı öğreneceğiz. AŞLAMADAN ÖNCE Bu eğiticiye başlamadan önce şunlardan emin olun: + PHP sürümünüzü 5.6 veya üzeri olarak ayarladınız . PHP 7.0 tavsiyemizdir. Bunu yapmak için cPanel’e gidin ve...
Cevaplar
0
Görüntüleme
338
DOM Document Object Model kelimesinin kısaltılmasından gelir ve Türkçe karşılığı Belge Nesne Modelidir. DOM, HTML, XML gibi belgelerin diğer programlama dilleri veya script dilleriyle iletişim kurabilmesini sağlamak için geliştirilmiş bir arabirimdir. Programlama dillerinde sıkça karşımıza...
Cevaplar
0
Görüntüleme
518
Şuan hali hazırda bir sürü PHP veritabanı sınıfı mevcut. Bunlardan bir kaçını saymak gerekirse; ezSQL, ADOdb, MeekroDB. Hepsinin bir çok fonksiyonu ve bazı farklı özellikleri var, incelemenizi öneririm. Fakat sonuç olarak baktığımda aslında ben bunların bir çoğunu kullanmıyorum ve kod kalabalığı...
Cevaplar
0
Görüntüleme
314
Xenforo Türkçe kişilik sorunu Xenforo türkçe şahsiyet sorununu nasıl halledebilirim ? Xenforo Ç Ö Ü Ş gibi harflerin görünmemesini nasıl sağlarım? Merhabalar kıymetli arkadaşlarım Türkiye'nin en büyük bayan sitelerinden birisi olarak vbullettin forum bölümünü biliyorsunuz xenforo olarak...
Cevaplar
0
Görüntüleme
187
INDENT 6HTML DOM Nedir?INDENT DOM Document Object Model kelimesinin kısaltılmasından gelir ve Türkçe karşılığı Belge Nesne Modelidir DOM, HTML, XML gibi belgelerin diğer programlama dilleri veya script dilleriyle iletişim kurabilmesini sağlamak için geliştirilmiş bir arabirimdir Programlama...
Cevaplar
0
Görüntüleme
171
858,505Konular
982,547Mesajlar
33,028Kullanıcılar
buraktpccSon üye
Üst Alt