⊗ppPmFmChcN 307 of 447 menu

Nuances do uso de checkboxes em PHP

Suponha que em nosso formulário haja apenas uma checkbox:

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

Suponha que o código de processamento do nosso formulário seja assim:

<?php if (!empty($_GET)) { // se o formulário foi enviado if (isset($_GET['flag'])) { // se a checkbox estiver marcada echo 'marcado'; } else { echo 'não marcado'; } } ?>

Enfrentaremos um problema - se a checkbox não estiver marcada, então, como não há outros elementos no formulário além da checkbox, o array $_GET estará vazio. Isso significa que no código de processamento do formulário não entraremos no primeiro if, que verifica o envio do formulário.

Para resolver esse problema, usa-se uma técnica especial: cria-se um input hidden com o mesmo nome da nossa checkbox. Ao mesmo tempo, o valor do input hidden é definido como zero, e o da checkbox - como um:

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

Nesse caso, acontecerá o seguinte. Se a checkbox não estiver marcada, apenas o valor do input hidden será enviado para o servidor. Se a checkbox estiver marcada, ambos os valores com o mesmo nome serão enviados para o servidor. Mas, como o valor da checkbox será o segundo, ele simplesmente sobrescreverá o primeiro.

Então, agora nossa checkbox enviará para o servidor zero ou um:

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

Vamos usar isso na nossa verificação:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'marcado'; } else { echo 'não marcado'; } } ?>

Usando uma checkbox, pergunte ao usuário se ele já tem 18 anos ou não. Se tiver, permita o acesso ao site, e se não tiver - não permita.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar