⊗ppPmFmChcN 307 of 447 menu

Nuances van het gebruik van checkboxes in PHP

Stel dat ons formulier alleen een checkbox heeft:

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

Stel dat de verwerkingscode voor ons formulier er als volgt uitziet:

<?php if (!empty($_GET)) { // als het formulier is verzonden if (isset($_GET['flag'])) { // als het vinkje is aangevinkt echo 'aangevinkt'; } else { echo 'niet aangevinkt'; } } ?>

We staan voor een probleem - als het vinkje niet is aangevinkt, dan, omdat er in het formulier behalve de checkbox geen andere elementen zijn, zal $_GET een lege array bevatten. Dit betekent dat we in de verwerkingscode niet in de eerste if zullen komen, die de formulierverzending controleert.

Om het probleem op te lossen, wordt een speciale techniek gebruikt: er wordt een verborgen input gemaakt met dezelfde naam als onze checkbox. Hierbij wordt de waarde van de verborgen input op nul gezet, en die van de checkbox op één:

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

In dat geval gebeurt het volgende. Als de checkbox niet is aangevinkt, wordt alleen de waarde van de verborgen input naar de server verzonden. Als de checkbox is aangevinkt, worden beide waarden met dezelfde naam naar de server verzonden. Maar, omdat de waarde van de checkbox de tweede zal zijn, zal deze de eerste overschrijven.

Kortom, nu zal onze checkbox naar de server of nul, of één sturen:

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

Laten we dit gebruiken in onze controle:

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

Vraag de gebruiker met behulp van een vinkje of hij/zij al 18 jaar of ouder is. Zo ja, sta hem/haar dan toegang tot de site toe, en zo niet - sta het niet toe.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren