概要:このチュートリアルでは、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_name
がINPUT_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.php
はget.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()
を使用します。