CakePHPでフォームを作成するにはFormHelperを使用します。
なかでもよく使用する機能の1つとしてチェックボックスがあります。
チェックボックスとはユーザーが単一の項目や複数の項目を選択、解除するときによく使用されます。
この記事では、
・checkboxメソッドとは?
・checkboxメソッドの基本的な使い方
という基本的な内容から、
・inputメソッドでチェックボックスを作成する方法
・チェックボックスのhiddenフィールドを無効にする方法
などのチェックボックスの応用的な処理についても解説します。
ここではcheckboxメソッドを使用して、チェックボックスを作成する方法について詳しく解説していきます!
使用環境: cakephp-3-4-7
checkboxとは
checkboxメソッドとは、チェックボックスを作成するときに使用するFormHelperのメソッドの1つです。
チェックボックスは、フォームから1つまたは複数の項目をまとめて選択するときに使用します。
checkboxメソッドは、以下のように記述します。
checkbox(String $フィールド名, array $オプション)
第一引数にはフィールド名を指定し、第二引数はchackboxをコントロールするための共通オプションを指定します。
CakePHPでフォームを作成するFormHelperの基本的な使い方については、以下の記事で詳しく解説しています。
checkboxの使い方
ここでは実際にcheckboxメソッドの使い方を見ていきましょう。
以下にcheckboxメソッドを使用して、簡単なチェックボックスを作成する方法を記述します。
SampleController.php
<?php namespace App\Controller; use App\Controller\AppController; class SampleController extends AppController { public function index() { } } ?>
index.ctp
<?php //フォームの作成 echo $this->Form->create(); //チェックボックスの作成 echo $this->Form->label('checkbox1', 'チェック'); echo $this->Form->checkbox('checbox1'); //フォームの終了 echo $this->Form->end(); ?>
実行結果
labelメソッドを使用する場合は、関連付けるcheckboxと同じ名称を第一引数のフィールド名に指定します。
inputを使用する方法
チェックボックスはcheckboxのほかに、inputメソッドを使用しても同様に作成できます。
以下にinputメソッドを使用して、簡単なチェックボックスを作成する方法を記述します。
//フォームの作成 echo $this->Form->create(); //チェックボックスの作成 echo $this->Form->input( 'checkbox1', array( 'type' => 'checkbox', 'label' => 'チェック1', )); echo $this->Form->input( 'checkbox2', array( 'type' => 'checkbox', 'label' => 'チェック2', )); echo $this->Form->input( 'checkbox3', array( 'type' => 'checkbox', 'label' => 'チェック3', )); //フォームの終了 echo $this->Form->end();
実行結果
hiddenフィールドの解除
HTMLではhiddenを指定した場合は、ブラウザ上では表示されないデータを送信することができます。
そのため隠し要素とも呼ばれますが、CakePHPの場合デフォルトではこのhiddenフィールドが有効となっています。
以下はcheckboxメソッドを使用したときに生成されるhtmlです。
<input type="hidden" name="checkbox" value="0"/> <input type="checkbox" name="checkbox" value="1">
余分なhiddenフィールドを無効にしたい場合はcheckboxの第二引数引数のオプションで、「’hiddenField’ => true」を指定します。
echo $this->Form->checkbox('checkbox', array('hiddenField' => false));
hiddenFieldをfalseに指定することで、余分なhiddenフィールドを削除することができました。
<input type="checkbox" name="checkbox" value="1">
まとめ
ここでは、チェックボックスの基本的な作成方法やinputメソッドを使用したチェックボックスの作成方法、余分なhiddenフィールドを無効にする方法などについて解説しました。
チェックボックスはフォームを作成する上で、よく使用する部品ですので作成方法については理解しておきましょう。
もし、チェックボックスの作成方法を忘れてしまったら、この記事を思い出してくださいね。