⊗ppPmFmChcN 307 of 447 menu

Märkeruutude kasutamise nüansid PHP-s

Oletame, et meie vormis on ainult märkeruut:

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

Oletame, et meie vormi töötlemise kood näeb välja selline:

<?php if (!empty($_GET)) { // kui vorm saadeti if (isset($_GET['flag'])) { // kui märkeruut on märgitud echo 'märgitud'; } else { echo 'märkimata'; } } ?>

Meid ootab probleem - kui märkeruutu pole märgitud, siis, kuna vormis pole peale märkeruudu muid elemente, on $_GET-s tühi massiiv. See tähendab, et vormi töötlemise koodis me ei satu esimesse if-i, mis kontrollib vormi saatmist.

Probleemi lahendamiseks kasutatakse spetsiaalset võtet: luuakse peidetud sisendväli sama nimega, nagu meie märkeruudul. Sel juhul pannakse peidetud sisendvälja väärtuseks null ja märkeruudu väärtuseks üks:

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

Sel juhul saab järgmine tulemus. Kui märkeruut pole märgitud, saadetakse serverisse ainult peidetud sisendvälja väärtus. Kui aga märkeruut on märgitud, saadetakse serverisse mõlemad väärtused ühe nimega. Kuid kuna märkeruudu väärtus on teine, siis see lihtsalt kirjutab esimese üle.

Kokkuvõttes saadab nüüd meie märkeruut serverisse kas nulli või ühe:

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

Kasutame seda meie kontrollis:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'märgitud'; } else { echo 'märkimata'; } } ?>

Küsi märkeruudu abil kasutajalt, kas ta on juba 18-aastane või mitte. Kui on, anna talle ligipääs saidile, ja kui mitte - ära anna.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu