⊗ppPmFmChcN 307 of 447 menu

PHP:ssä valintaruutujen käytön vivahteet

Oletetaan, että lomakkeessamme on vain yksi valintaruutu:

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

Oletetaan, että lomakkeen käsittelykoodi näyttää tältä:

<?php if (!empty($_GET)) { // jos lomake lähetettiin if (isset($_GET['flag'])) { // jos valintaruutu on valittu echo 'valittu'; } else { echo 'ei valittu'; } } ?>

Meitä odottaa ongelma - jos valintaruuttua ei ole valittu, niin koska lomakkeessa ei ole muita elementtejä valintaruudun lisäksi, $_GET -taulukko on tyhjä. Tämä tarkoittaa, että lomakkeen käsittelykoodissa emme pääse ensimmäiseen if -ehtoon, joka tarkistaa lomakkeen lähetyksen.

Ongelman ratkaisemiseksi käytetään erikoista keinoa: luodaan piilotettu input-kenttä, jolla on sama nimi kuin valintaruudullamme. Tässä tapauksessa piilotetun kentän arvoksi asetetaan nolla ja valintaruudun arvoksi yksi:

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

Tässä tapauksessa tapahtuu seuraavaa. Jos valintaruuttua ei ole valittu, palvelimelle lähetetään vain piilotetun kentän arvo. Jos taas valintaruutu on valittu, palvelimelle lähetetään molemmat arvot samalla nimellä. Mutta koska valintaruudun arvo on toisena, se yksinkertaisesti korvaa ensimmäisen.

Siis, nyt valintaruutulamme lähettää palvelimelle joko nollan tai yhden:

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

Käytetään tätä tarkistuksessamme:

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

Kysy valintaruudun avulla käyttäjältä, onko hänellä täyttänyt 18 vuotta vai ei. Jos on, salli hänen pääsy sivustolle, ja jos ei - älä salli.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää