⊗ppPmFmChcN 307 of 447 menu

PHP'de Checkbox Kullanımının Nüansları

Formumuzda sadece bir checkbox olduğunu varsayalım:

<form action="" method="GET"> <input type="checkbox" name="flag"> <input type="submit"> </form>

Form işleme kodumuzun şu şekilde olduğunu varsayalım:

<?php if (!empty($_GET)) { // eğer form gönderildiyse if (isset($_GET['flag'])) { // eğer checkbox işaretlendiyse echo 'işaretlendi'; } else { echo 'işaretlenmedi'; } } ?>

Bir problemle karşılaşacağız - eğer checkbox işaretlenmezse, formda checkbox dışında başka eleman olmadığı için, $_GET içinde boş bir dizi olacak. Bu, form işleme kodunda, formun gönderilip gönderilmediğini kontrol eden ilk if bloğuna giremeyeceğimiz anlamına gelir.

Bu sorunu çözmek için özel bir yöntem kullanılır: checkbox'ımızla aynı isme sahip gizli bir input oluşturulur. Bu gizli input'un değeri 0, checkbox'ın değeri ise 1 olarak ayarlanır:

<form action="" method="GET"> <input type="hidden" name="flag" value="0"> <input type="checkbox" name="flag" value="1"> <input type="submit"> </form>

Bu durumda şu sonuç ortaya çıkar. Eğer checkbox işaretlenmezse, sunucuya sadece gizli input'un değeri gönderilir. Eğer checkbox işaretlenirse, sunucuya aynı isimle iki değer gönderilir. Ancak, checkbox'ın değeri ikinci sırada geleceği için, ilk değerin üzerine yazar.

Böylece, artık checkbox'ımız sunucuya ya 0 ya da 1 gönderecek:

<?php var_dump($_GET['flag']); // '0' veya '1' ?>

Bunu kontrolümüzde kullanalım:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'işaretlendi'; } else { echo 'işaretlenmedi'; } } ?>

Bir checkbox kullanarak kullanıcıya 18 yaşında olup olmadığını sorun. Eğer yaşı tutuyorsa, siteye erişimine izin verin, yaşı tutmuyorsa - izin vermeyin.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet