⊗ppPmFmChcN 307 of 447 menu

Nijanse korišćenja checkbox-ova u PHP-u

Recimo da u našoj formi postoji samo jedan checkbox:

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

Recimo da kod za obradu naše forme izgleda ovako:

<?php if (!empty($_GET)) { // ako je forma poslata if (isset($_GET['flag'])) { // ako je checkbox označen echo 'označen'; } else { echo 'nije označen'; } } ?>

Suočićemo se sa problemom - ako checkbox nije označen, tada, pošto u formi osim checkbox-a nema drugih elemenata, u $_GET će biti prazan niz. To znači da u kodu za obradu forme nećemo ući u prvi if, koji proverava da li je forma poslata.

Za rešavanje problema koristi se poseban trik: kreira se skriveni input sa istim imenom, kao i naš checkbox. Pritom se vrednost skrivenog input-a postavlja na nulu, a checkbox-a - na jedinicu:

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

U tom slučaju će se dogoditi sledeće. Ako checkbox nije označen, onda će se na server poslati samo vrednost skrivenog input-a. Ako je checkbox označen, onda će se na server poslati obe vrednosti sa jednim imenom. Ali, pošto će vrednost checkbox-a biti druga, ona će jednostavno pregaziti prvu.

Dakle, sada će naš checkbox slati na server ili nulu, ili jedinicu:

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

Iskoristimo ovo u našoj proveri:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'označen'; } else { echo 'nije označen'; } } ?>

Pomoću checkbox-a pitajte korisnika da li ima već 18 godina ili ne. Ako ima, dozvolite mu pristup sajtu, a ako nema - nemojte dozvoliti.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij