PHP Checkbox

概要:このチュートリアルでは、PHPを使用して一つ以上のチェックボックスを持つフォームを処理する方法を学びます。

checkbox要素の簡単な紹介

checkboxを使用すると、フォームで送信するための単一の値を選択できます。 チェックボックスを作成するには、次のようにcheckbox型のinput要素を使用します:

Code language: HTML, XML (xml)

チェックボックスには、checkedとuncheckedの2つの状態があります。

チェックボックスをオンにしてPOSTメソッドを使用してフォームを送信すると、$_POST連想配列には、キーがcheckbox_nameで値がcheckbox_valueの要素が含まれます。

Code language: PHP (php)

ただし、チェックボックスをオフにしてフォームを送信すると、$_POSTにはキーcheckbox_nameを持つ要素はありません。 これは、次の式が返されることを意味しますfalse:

Code language: PHP (php)

チェックボックスがチェックされているかどうかを確認するには、次のようなfilter_has_var()関数を使用することもできます:

Code language: JavaScript (javascript)

filter_has_var()関数は、checkbox_nameINPUT_POSTに存在する場合、trueを返します。

チェックボックスにはラベルがありません。 したがって、次のような<label>要素を持つcheckboxを常に使用する必要があります:

Code language: HTML, XML (xml)

この例では、<label>要素のfor属性の値は、checkboxのid属性の値と同じです。 ラベルをチェックボックスに関連付けるときに、ラベルをクリックしてチェックボックスをオンまたはオフにすることができます。

チェックボックスをラベルに関連付ける別の方法は、次のようにラベル内にチェックボックスを配置することです:

Code language: HTML, XML (xml)

この場合、チェックボックスにidを指定し、ラベルにfor属性を指定する必要はありません。

シンプルなPHPのチェックボックスの例

チェックボックスと送信ボタンを持つシンプルなフォームを作成します。

まず、次のディレクトリとファイル構造を作成します:

Code language: plaintext (plaintext)
ファイル ディレクトリ 説明
インデックス。php getをロードするメインロジックが含まれています。phpまたはpost。HTTPリクエストメソッドに応じたphp
ヘッダ。php inc にヘッダーコードが含まれています
フッター…php inc にフッターコードが含まれています
取得します。php inc には、HTTPリクエストがGETのときにチェックボックス付きのフォームを表示するためのコードが含まれています。
ポスト。php inc には、POSTリクエストを処理するためのコードが含まれています
.htaccess inc incディレクトリ内のファイルへの直接アクセスを禁止します
スタイル。css css にはCSSコードが含まれています

インデックス。php

次に、index.phpファイルに次のコードを追加します:

Code language: PHP (php)

HTTP要求メソッドがGETの場合、index.phpget.phpファイルからフォームをロードします。 また、フォームが送信された場合はpost.phpファイルがロードされます。

$errors変数は、エラーメッセージを格納するために使用されます。

php

第三に、header.phpファイルに次のコードを配置します:

Code language: HTML, XML (xml)

フッター…php

第四に、footer.phpファイルには、header.phpファイルの開始タグに対応する囲むタグが含まれています:

Code language: HTML, XML (xml)

取得します。php

第五に、get.phpファイルにフォームを作成します:

Code language: PHP (php)

ポスト。php

第六に、フォームデータをサニタイズして検証するために、post.phpファイルに次のコードを追加します:

Code language: PHP (php)

概要

  • チェックボックスがチェックされているかどうかを確認するには、isset()またはfilter_has_var()を使用します。

コメントを残す

メールアドレスが公開されることはありません。