⊗ppPmFmChcN 307 of 447 menu

PHPにおけるチェックボックス使用のニュアンス

フォームにチェックボックスしかないとしましょう:

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

フォーム処理コードが以下のようになっているとします:

<?php if (!empty($_GET)) { // フォームが送信された場合 if (isset($_GET['flag'])) { // チェックボックスがオンになっている場合 echo 'オン'; } else { echo 'オフ'; } } ?>

問題が発生します - チェックボックスがオフの場合、 フォームに他の要素がないため、$_GETには空の配列が格納されます。 これは、フォーム処理コードの最初のif(フォーム送信を確認する部分)に入らないことを意味します。

この問題を解決するためには、特別な手法が使われます:チェックボックスと同じ名前の隠し入力フィールドを作成します。 隠し入力の値は0、チェックボックスの値は1に設定します:

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

この場合、以下のようになります。チェックボックスがオフの場合、 サーバーには隠し入力の値のみが送信されます。 チェックボックスがオンの場合、同じ名前の両方の値がサーバーに送信されます。 しかし、チェックボックスの値が2番目になるため、最初の値を上書きします。

これで、チェックボックスはサーバーに0または1を送信します:

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

この結果をチェックに使用します:

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

チェックボックスを使用して、ユーザーが18歳以上かどうかを尋ねてください。 はいの場合、サイトへのアクセスを許可し、いいえの場合、許可しないでください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否