⊗ppPmFmChcN 307 of 447 menu

Nyanser ved bruk av avkrysningsbokser i PHP

La det i vårt skjema bare være en avkrysningsboks:

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

La koden som behandler skjemaet vårt se slik ut:

<?php if (!empty($_GET)) { // hvis skjemaet ble sendt if (isset($_GET['flag'])) { // hvis avkrysningsboksen er merket echo 'merket'; } else { echo 'ikke merket'; } } ?>

Vi står overfor et problem - hvis avkrysningsboksen ikke er merket, vil $_GET inneholde en tom array fordi det i skjemaet ikke er andre elementer enn avkrysningsboksen. Dette betyr at vi i koden som behandler skjemaet ikke vil komme inn i den første if-sjekken som kontrollerer om skjemaet er sendt.

For å løse dette problemet bruker man et spesielt triks: man oppretter et skjult input-felt med samme navn som avkrysningsboksen vår. I tillegg setter man verdien på det skjulte input-feltet til null, og avkrysningsboksens verdi til én:

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

I dette tilfellet vil følgende skje. Hvis avkrysningsboksen ikke er merket, vil kun verdien fra det skjulte input-feltet bli sendt til serveren. Hvis avkrysningsboksen derimot er merket, vil begge verdiene med samme navn bli sendt til serveren. Men, siden verdien til avkrysningsboksen vil være den andre, vil den bare overskrive den første.

Så, nå vil avkrysningsboksen vår sende enten null eller én til serveren:

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

La oss bruke dette i kontrollen vår:

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

Spør brukeren ved hjelp av en avkrysningsboks om hen allerede er 18 år eller ikke. Hvis hen er det, gi tilgang til nettsiden, og hvis ikke - ikke gi tilgang.

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