⊗ppPmFmChcN 307 of 447 menu

Checkbox izmantošanas nianses PHP

Pieņemsim, ka mūsu formā ir tikai checkbox:

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

Pieņemsim, ka mūsu formas apstrādes kods izskatās šādi:

<?php if (!empty($_GET)) { // ja forma tika nosūtīta if (isset($_GET['flag'])) { // ja checkbox ir atzīmēts echo 'atzīmēts'; } else { echo 'neatzīmēts'; } } ?>

Mūs sagaida problēma - ja checkbox nav atzīmēts, tā kā formā bez checkbox nav citu elementu, $_GET būs tukšs masīvs. Tas nozīmē, ka formas apstrādes kodā mēs neiekļūsim pirmajā if, kas pārbauda formas nosūtīšanu.

Lai atrisinātu šo problēmu, izmanto speciālu paņēmienu: izveido slēpto input ar tādu pašu nosaukumu kā mūsu checkbox. Šajā gadījumā slēptā input vērtību iestata uz nulli, bet checkbox - uz vienu:

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

Šajā gadījumā sanāks sekojošais. Ja checkbox nav atzīmēts, uz serveri tiks nosūtīta tikai slēptā input vērtība. Ja checkbox ir atzīmēts, uz serveri tiks nosūtītas abas vērtības ar vienu nosaukumu. Bet, tā kā checkbox vērtība būs otrā, tā vienkārši pārrakstīs pirmo.

Tātad, tagad mūsu checkbox nosūtīs uz serveri vai nu nulli, vai vienu:

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

Izmantosim to mūsu pārbaudē:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'atzīmēts'; } else { echo 'neatzīmēts'; } } ?>

Izmantojot checkbox, jautājiet lietotājam, vai viņam jau ir 18 gadi vai nav. Ja ir, atļaujiet viņam piekļuvi vietnei, bet ja nav - neatļaujiet.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt