⊗ppPmFmChcN 307 of 447 menu

Nuancer ved brug af afkrydsningsfelter i PHP

Lad der i vores form kun være et afkrydsningsfelt:

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

Lad koden, der behandler vores form, se sådan ud:

<?php if (!empty($_GET)) { // hvis formularen blev sendt if (isset($_GET['flag'])) { // hvis afkrydsningsfeltet er markeret echo 'markeret'; } else { echo 'ikke markeret'; } } ?>

Vi står over for et problem - hvis afkrydsningsfeltet ikke er markeret, så vil $_GET indeholde en tom array, da der ikke er andre elementer i formularen udover afkrydsningsfeltet. Det betyder, at vi i koden, der behandler formularen, ikke kommer ind i den første if, der kontrollerer om formularen er blevet sendt.

For at løse dette problem bruger man et specielt trick: man opretter et skjult inputfelt med det samme navn som vores afkrydsningsfelt. Her sætter man værdien på det skjulte inputfelt til nul, og afkrydsningsfeltets værdi til en:

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

I dette tilfælde vil følgende ske. Hvis afkrydsningsfeltet ikke er markeret, vil kun værdien fra det skjulte inputfelt blive sendt til serveren. Hvis afkrydsningsfeltet derimod er markeret, vil begge værdier med samme navn blive sendt til serveren. Men, da afkrydsningsfeltets værdi vil være den sidste, vil den overskrive den første.

Således vil vores afkrydsningsfelt nu sende enten nul eller en til serveren:

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

Lad os bruge dette i vores kontrol:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'markeret'; } else { echo 'ikke markeret'; } } ?>

Spørg brugeren ved hjælp af et afkrydsningsfelt, om han/hun er over 18 år. Hvis ja, giv ham/hende adgang til sitet, og hvis nej - så giv ikke adgang.

Dansk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruger cookies til webstedets funktion, analyse og personalisering. Behandling af data foregår i henhold til Fortrolighedspolitikken.
accepter alle tilpas afvis