フォームの設定

フォームクラスのコンストラクタ_construct()内でフォームの各入力タグのプロパティを設定します。入力タグのプロパティには<input>タグのtype属性をはじめ、バリデーションのルールやドロップダウンメニューの選択肢などがあります。

入力定義配列

Chimpanzeeでは入力タグのプロパティを連想配列の形式で指定し、それを設定メソッドの引数として与えます。入力定義配列は1個の変数についての入力方法を定義する配列です。入力定義配列$partは以下のような形式になります。

$part = array(
	'type'		=> 'text',
	'option'	=> 'class="xxx" yyy="zzz"',
	'required_flag'	=> TRUE,
);

キーをプロパティ名、値を設定値とする連想配列です。入力定義配列は入力タグ名と対になります。入力タグ名は<input>タグのname属性にあたり、クライアントから送られるフォームデータの各変数名になります。以下、入力定義配列は$part、入力タグ名は$part_nameとして記述します。

プロパティの一覧を説明します。

入力のタイプにかかわらず共通の要素

type
(string) (required) 入力のタイプを文字列で指定します。以下の文字列のいずれかで指定します。
'text' / 'password' / 'checkbox' / 'radio' / 'select' / 'textarea' / 'file' / 'hidden'
id
(string) (option) 入力タグに付するHTMLのID属性を文字列で指定します。指定しない場合、変数名がID属性として適用されます。
option
(string) (option) Chimpanzeeから自動生成されない文字列で、PC用HTML入力タグに付加する文字列を指定します。classによるスタイルシートのクラス、lengthやmaxlengthなど入力制御、onblurなどjavascriptのイベントハンドラを記述します。指定しない場合、何も付加しません。
mobile_option
(string) (option) 携帯電話用のHTMLの入力タグに付加する文字列を指定します。指定しない場合は何も付加しません。モジュールMobileが有効になっていない場合、この指定は無効になります。

入力タグの前後に付加する文字列の設定

input[type='hidden']以外で設定可能な要素です。実際の挙動はtextの実際の定義と出力されるタグを参照してください。

caption
(string) (option) 表示するキャプションを文字列で指定します。指定しない場合、入力タグ名($part_name)をそのまま表示します。キャプションを表示しない場合は空文字「''」を指定します。
description
(string) (option)入力タグに付ける説明文などを文字列で指定します。指定しない場合、説明文は表示されません。
label
(string) (option) 入力タグに付けるラベル、項目名を指定します。input[type='checkbox']のみで設定可能です。このオプションを指定しないとキャプションにラベルが付きます。
head_str
(string) (option) 入力タグの前に付ける文字列を指定します。HTMLタグも可能です。指定しない場合、何も表示しません。
tail_str
(string) (option) 入力タグの後に付ける文字列を指定します。HTMLタグも可能です。指定しない場合、何も表示しません。

input[type='password'], input[type='file']以外で設定可能な要素

default_value
(string / checkboxの場合のみbool) (option)フォームの初期値を指定します。
input[type='checkbox']以外の場合は文字列で指定します。指定しない場合、フォームを最初に読み込んだときに入力タグの中身は空欄となります。
input[type='checkbox']の場合はブール型で指定し、TRUEがデフォルトでチェックの入っている状態、FALSEもしくは指定しない場合がデフォルトでチェックの入っていない状態となります。

バリデーションと確認画面処理

入力値チェックに関するオプションです。

required_flag
(bool) (option) TRUEで必須チェックをします。FALSEまたは指定しない場合、必須チェックしません。input[type='hidden'], input[type='checkbox']以外で設定可能です。入力タググループにも適用可能で、その場合はグループ内の入力タグに一つでも入力漏れがあるとエラーになります。
validate
(array) (option) バリデーションのルールやエラーメッセージをフィルタ形式の連想配列で指定します。指定しない場合、必須以外のバリデーションをしません。詳細はバリデーションと確認画面処理コンバート関数とバリデート関数を参照してください。input[type='hidden'], input[type='file']以外で設定可能です。
confirm
(string) (option) 指定した入力タグの入力内容との一致チェックを行います。指定しない場合、一致チェックしません。
mb_convert_kana_option
(string) (option) 入力値をmb_convert_kana()で変換をかける(半角→全角/全角→半角)ことができるのですが、その際mb_convert_kana()に与えるオプションを指定します。指定しない場合、mb_convert_kana()処理を行いません。input[type='text'], textareaで設定可能です。

確認画面で入力値そのものではなく一定の変換(コンバート)を加えたものを表示させる場合に指定するオプションです。

convert
(array) (option) 変換のルールをフィルタ形式の連想配列で指定します。指定されたコンバート関数にしたがってコンバートされた値を確認画面で表示します。指定しない場合、入力値をそのまま確認画面で表示します。詳細はコンバート関数とバリデート関数を参照してください。input[type='text'], textareaで設定可能です。

アップロードするファイルが画像の場合、確認画面でそのサムネイルを表示することが可能です。その処理に関する設定です。input[type='file']でのみ設定可能な要素です。アップロードするファイルが画像ファイルのときに指定してください。

image_flag
(bool) (option) TRUEにすると確認画面で画像を表示します。FALSEもしくは指定しない場合、表示しません。
image_max_width
(int) (option) 確認画面で表示する画像サイズの横の最大値をピクセルで指定します。image_flagがTRUEの場合にのみ有効です。
image_max_height
(int) (option) 確認画面で表示する画像サイズの縦の最大値をピクセルで指定します。image_flagがTRUEの場合にのみ有効です。

選択式の入力項目の場合に設定する要素

input[type='radio'], select/optionで設定可能な要素です。

table
(array) (required) 選択肢を定数テーブル型の連想配列で指定します。以下のように定数テーブルオブジェクトから取得して代入することも可能です。
'table' => $this->getTable('Year')->get(),

selectで設定可能な要素です。

head_value
(array) (option)<select>タグ内の最初のオプション(ヘッダ)を指定します。「以下から選択してください」などの文字列を入れるところです。指定しない場合、ヘッダがなくtableで指定した一覧だけがプルダウンメニューの中で表示されます。形式は要素が1個でキーが空文字「''」のテーブル型連想配列です。
'head_value' => array( '' => '(以下から選択してください)' ),

グループ化

複数の入力タグをグループ化してまとめて一つにすることが可能です。詳細は複数のinputのグループ化を参照してください。

parts
(array) (option) グループ化して扱う入力タグ群の入力定義配列を指定します。入力定義配列の要素として入力定義配列が入る、2階層の入れ子構造になります。

セパレータ

複数の入力タグを区切るセパレータの文字列を指定することが可能です。ラジオボタンの項目間のセパレータとしても指定可能です。

separator
(array) (option)グループ内の各入力タグ、もしくはラジオボタンの各項目のセパレータを文字列で指定します。指定しない場合、セパレータが入りません。グループとinput[type='radio']でのみ指定可能です。
array(
	'parts'		=> array(
		'check01'	=> array(
			'type'		=> 'checkbox',
			'label'		=> '表示1',
			'default_value'	=> TRUE
		),
		'check02'	=> array(
			'type'		=> 'checkbox',
			'label'		=> '表示2',
		),
	),
	'separator'	=> '/'
),

のように指定します。

設定メソッド

以上の入力定義配列で与えられる定義を以下のメソッドで設定していきます。設定を行うメソッドには一つずつ入力タグを設定していくものとすべての入力タグをまとめて設定するものがあります。

CZForm::addPart(string $part_name, array $part)
$part_nameという名前の入力タグに対してプロパティ$partを設定します。実行時、実行元インスタンスのオブジェクトを返します。入力タグ1個ずつ設定していくメソッドです。たとえば以下のように設定します。
$part_01 = array(
	'type'		=> 'text',
	'option'	=> 'class="xxx" yyy="zzz"',
	'required_flag'	=> TRUE,
);

$this->addPart('text01', $part_01);

$this->addPart('radio01', array(
	'type'		=> 'radio',
	'values'	=> array(
		1 => '選択肢1',
		2 => '選択肢2',
	),
	'default_value'	=> 1,
));
CZForm::addPartProperty(string string $part_name, string $property_name, mixed $value)
$part_nameという名前の入力タグの設定項目$property_nameに対して設定値$valueを設定します。実行時、実行元インスタンスのオブジェクトを返します。入力タグの設定項目1個ずつ設定していくメソッドです。たとえば以下のように設定します。
$this->addPartProperty('text01', 'type', 'text')
	->addPartProperty('text01', 'option', 'class="xxx" yyy="zzz"')
	->addPartProperty('text01', 'required_flag', TRUE);

$this->addPartProperty('radio01', 'type', 'radio')
	->addPartProperty('radio01', 'values', array(1 => '選択肢1', 2 => '選択肢2')
	->addPartProperty('radio01', 'default_value', 1);
すでにCZForm::addPart(string $part_name, array $part)で設定している入力タグについて設定項目を追加することもできます。
$part_01 = array(
	'type'		=> 'text',
	'option'	=> 'class="xxx" yyy="zzz"',
	'required_flag'	=> TRUE,
);

$this->addPart('text01', $part_01);
$this->addPartProperty('text01', 'caption', 'テキスト01です');
CZForm::setParts(array $parts)
フォーム全体の入力タグのプロパティ$partsを設定します。すべての入力タグについてまとめて1回で設定するメソッドです。$partsはフォーム内すべての入力タグのプロパティを羅列した配列で、
$parts = array(
	'入力タグ名1' => 入力定義配列,
	'入力タグ名2' => 入力定義配列,
	'グループ名1' => グループ定義配列,
	  :
);
キーを入力タグ名、値を入力定義配列とする連想配列です。変数グループ名をキー、そのグループを定義する連想配列を値とすることでグループを指定することもできます。実行時、実行元インスタンスのオブジェクトを返します。たとえば以下のように設定します。
$parts = array(
	'text01' => array(
		'type'		=> 'text',
		'option'	=> 'class="xxx" yyy="zzz"',
		'required_flag'	=> TRUE,
	),
	'pass01' => array(
		'type'		=> 'password',
	),
	'checkgroup01' => array(	// チェックボックスのグループ
		'parts'		=> array(
			'check01'	=> array(
				'type'		=> 'checkbox',
				'label'		=> '表示1',
				'default_value'	=> TRUE
			),
			'check02'	=> array(
				'type'		=> 'checkbox',
				'label'		=> '表示2',
			),
		),
		'separator'	=> '/'
	),
	'radio01' => array(
		'type'		=> 'radio',
		'values'	=> array(
			1 => '選択肢1',
			2 => '選択肢2',
		),
		'default_value'	=> 1,
	),
);
$this->setParts($parts);

各種設定メソッドは実行元インスタンスのオブジェクトを返しますので、メソッドチェインの形で設定を行うこともできます。

$this->addPart('text01', array(
	'type'		=> 'text',
	'option'	=> 'class="xxx" yyy="zzz"',
	'required_flag'	=> TRUE,
	))
	->addPart('radio01', array(
	'type'		=> 'radio',
	'values'	=> array(
		1 => '選択肢1',
		2 => '選択肢2',
	),
	'default_value'	=> 1,
));

設定したフォーム情報の取得

設定した入力定義配列を取得するメソッドもあります。

CZForm::getParts()
当該フォームで設定されている入力タグ情報を取得します。形式はCZForm::setParts($parts)の引数である配列$partsと同じものになります。

入力のタイプと連想配列の要素

キー 設定値の型 input
[type=
'text']
input
[type=
'hidden']
input
[type=
'password']
input
[type=
'radio']
input
[type=
'checkbox']
input
[type=
'file']
select
/option
textarea グループ
type string
id string
option string
mobile_option string
caption string
description string
label string
head_str string
tail_str string
default_value string
checkboxのみbool
required_flag bool
validate filter
confirm string
mb_convert_kana_option string
convert filter
image_flag bool
image_max_width int
image_max_height int
table table
head_value table
parts array
separator string

◎は必須、○はオプション

前後のページ

ページトップへ