HTML_QuickForm::addGroupRule()

HTML_QuickForm::addGroupRule() – Ajoute une règle de validation pour un groupe donné

Synopsis

require_once 'HTML/QuickForm.php';

void HTML_QuickForm::addGroupRule ( string $group , mixed $arg1 , string $type = '' , string $format = '' , int $howmany = 0 , string $validation = 'server' , bool $reset = = false )

Description

Ajoute une règle de valifation pour un groupe d'éléments donné.

Seuls les groupes possédant un nom peuvent avoir une règle d'assignée. Utilisez addGroupRule() lorsque vous avez besoin de valider les éléments d'un groupe. Utilisez également addRule() si vous devez valider le groupe complet.

Parameter

string $group

Nom du groupe

mixed $arg1

Tableau d'éléments ou message d'erreur pour un élément. Si c'est un tableau, sa structure sera la suivante :


array (
    'nom de l'élément ou index' => array(
        array(règle),
        ...
        array(règle)
    ),
    ...
    'nom de l'élément ou index' => array(
        array(règle),
        ...
        array(règle)
    )
)

La règle ici correspond à l'ordre des paramètres ainsi que leurs signification pour la méthode addRule().

Si ce paramètre est un tableau, tous les paramètres de sous séquence sont ignorés. Vous devriez passer tous les modificateurs pour les règles à ajouter dans ce tableau ( voir l'exemple ci-dessous).

string $type

(optionnel) Type de règle. Utilisez getRegisteredRules() pour récupérer les types. Vous pouvez également passer le nom d'une classe pour un descendant de HTML_QuickForm_Rule ou une instance d'une telle classe.

string $format

(optionnel) Requis pour les règles

integer $howmany

(optionnel) Nombre d'éléments valides devant être dans le groupe

string $validation

(optionnel) Où l'on doit effectuer la validation : "server" (côté serveur), "client" (côté client)

boolean $reset

Côté client : si l'on doit réinitialiser la valeur des éléments lors de l'échec d'une validation.

Throws

Possible PEAR_Error values
Code erreur Message d'erreur Raison Solution
QUICKFORM_NONEXIST_ELEMENT Group '$group ' does not exist in HTML_QuickForm::addGroupRule() Tentative d'ajout d'une règle pour un groupe inexistant Vérifiez le nom du groupe
QUICKFORM_NONEXIST_ELEMENT Element '$elementIndex ' not found in group '$group ' in HTML_QuickForm::addGroupRule() $arg1 est un tableau et contient un index pour un élément qui n'appartient pas au groupe Vérifiez l'index de l'élément
QUICKFORM_INVALID_RULE Rule '$type ' is not registered in HTML_QuickForm::addGroupRule() La règle est inconnue de QuickForm Vérifiez le type de la règle ou utilisez la méthode HTML_QuickForm::registerRule().

Note

Disponible depuis la version 2.5.

This function can not be called statically.

Example

Exemple avec addGroupRule()

<?php
// un groupe de 4 cases à cocher
$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('&nbsp;''<br />'));
// Règle simple : au moins 2 cases à cocher doivent être cochées
$form->addGroupRule('ichkABCD''Merci de cocher au moins 2 cases à cocher'null2);

$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:'',&nbsp');
// Règle complexe pour les éléments d'un groupe
$form->addGroupRule('id', array(
    
'lastname' => array(
        array(
'Le nom doit être composé exclusivement de lettres''lettersonly'),
        array(
'Le nom est requis''required'null'client')
    ),
    
'code' => array(
    array(
'Le code doit être un numérique''numeric')
    )
));
?>