void HTML_QuickForm::addGroupRule (
string $group
, mixed $arg1
, string $type = ''
, string $format = ''
, int $howmany = 0
, string $validation = 'server'
, bool $reset
= = false
)
指定した要素グループに検証規則を追加します。
検証規則は、名前がつけられているグループにのみ追加できます。 グループ内の要素に対する検証を行う必要がある場合に addGroupRule() を使用してください。 グループ全体に対する検証を行う必要がある場合には addRule() を使用することもできます。
$group
フォームのグループ名。
$arg1
複数要素の配列、あるいはひとつの要素のエラーメッセージ文字列。 配列の場合は、以下のような構造となります。
ここで、規則のデータの内容は addRule() メソッドのパラメータと同じ並び順・同じ意味となります。
このパラメータが配列の場合、それ以降のパラメータの内容は無視されます。 検証規則に追加したい内容は、すべてこの配列で渡す必要があります (以下の例を参照ください)。
$type
(オプション) 規則の型。 getRegisteredRules() を使用して取得します。HTML_QuickForm_Rule の派生クラスの名前や、そのクラスのインスタンスを渡すことも可能です。
$format
(オプション) 追加の検証データのために必要。
$howmany
(オプション) グループ内のいくつの要素が規則を満たすべきか。
$validation
(オプション) 検証を行う位置。 "server" あるいは "client"。
$reset
クライアント側: 検証に失敗した場合に、 要素の内容をリセットして元の状態に戻すかどうか。
エラーコード | エラーメッセージ | 原因 | 対応 |
---|---|---|---|
QUICKFORM_NONEXIST_ELEMENT | Group '$group ' does not exist in HTML_QuickForm::addGroupRule() |
存在しないグループに規則を追加しようとしました。 | グループ名の綴りを調べます。 |
QUICKFORM_NONEXIST_ELEMENT | Element '$elementIndex ' not found in group '$group ' in HTML_QuickForm::addGroupRule() |
$arg1 が配列で、
グループ内に存在しない要素のインデックスを含んでいます。
|
要素インデックスの綴りを調べます。 |
QUICKFORM_INVALID_RULE | Rule '$type ' is not registered in HTML_QuickForm::addGroupRule() |
QuickForm が知らない規則を指定しています。 | 規則の型の綴りを調べるか、 HTML_QuickForm::registerRule() を使用します。 |
since 2.5
This function can not be called statically.
addGroupRule() の使用法
<?php
// 4 つのチェックボックスからなるグループ
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'A', null, 'A');
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'B', null, 'B');
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'C', null, 'C');
$checkbox[] = &HTML_QuickForm::createElement('checkbox', 'D', null, 'D');
$form->addGroup($checkbox, 'ichkABCD', 'ABCD:', array(' ', '<br />'));
// 単純な規則の例: 少なくとも 2 つのチェックボックスがチェックされていなければなりません
$form->addGroupRule('ichkABCD', '少なくとも 2 つはチェックしてください', 'required', null, 2);
$idGrp[] = &HTML_QuickForm::createElement('text', 'lastname', 'Name', array('size' => 30));
$idGrp[] = &HTML_QuickForm::createElement('text', 'code', 'Code', array('size' => 5, 'maxlength' => 4));
$form->addGroup($idGrp, 'id', 'ID:', ', ');
// グループの要素についての複雑な規則の例
$form->addGroupRule('id', array(
'lastname' => array(
array('名前は文字のみで指定します', 'lettersonly'),
array('名前は必須です', 'required', null, 'client')
),
'code' => array(
array('コードは数値でなければなりません', 'numeric')
)
));
?>