⊗ppPmFmChcN 307 of 447 menu

Nyanser vid användning av kryssrutor i PHP

Låt det endast finnas en kryssruta i vårt formulär:

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

Låt koden som hanterar vårt formulär se ut så här:

<?php if (!empty($_GET)) { // om formuläret skickades if (isset($_GET['flag'])) { // om kryssrutan är markerad echo 'markerad'; } else { echo 'inte markerad'; } } ?>

Vi kommer att möta ett problem - om kryssrutan inte är markerad, och eftersom det inte finns några andra element i formuläret förutom kryssrutan, kommer $_GET att innehålla en tom array. Det betyder att vi i koden för formulärhanteringen inte kommer att komma in i den första if-satsen som kontrollerar om formuläret skickades.

För att lösa problemet används ett speciellt knep: man skapar en dold input med samma namn som vår kryssruta. Samtidigt sätter man värdet på den dolda inputen till noll, och kryssrutans värde till ett:

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

I det här fallet kommer följande att hända. Om kryssrutan inte är markerad, kommer bara värdet från den dolda inputen att skickas till servern. Om kryssrutan är markerad, kommer båda värdena med samma namn att skickas till servern. Men eftersom kryssrutans värde kommer att vara det andra, kommer det helt enkelt att skriva över det första.

Så, nu kommer vår kryssruta att skicka antingen noll eller ett till servern:

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

Låt oss använda detta i vår kontroll:

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

Fråga användaren med hjälp av en kryssruta om hen redan är 18 år eller inte. Om hen är det, ge hen tillgång till webbplatsen, och om inte - ge inte tillgång.

Svenska
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi använder kakor för webbplatsens funktion, analys och personalisering. Behandling av data sker i enlighet med Integritetspolicyn.
acceptera alla anpassa avvisa