phpMyForm : Instanciation de la class

Création d'une instance de la class PhpMyForm

$my_form = new PhpMyForm('form_name');

Avec paramètres optionnels :

$my_form = new PhpMyForm('form_name', 'param1=value1&param2=value2&...');
<form id="form_name" ... >

Options d'initialisation du formulaire

Initialisation des champs du formulaire

Attrubut init_data :

Initialisation d’un tableau pour initialiser les champs du formulaire avant l’appel de la méthode form.

$my_form->init_data = array(
                      'field_name1' => 'value1',
                      'field_name2' => 'value2',
                      'field_name3' => 'value3',
                      ...
                      );

Par exemple, si je veux initialiser le champ nom avec la valeur toto et le champ email avec la valeur toto@titi.org de mon formulaire, je vais créer un tableau php comme ceci :

$my_form->init_data = array (
                      'nom' => 'toto', 
                      'email' => 'toto@titi.org'
                      );

Ce tableau php, peut bien entendu être créé dynamiquement, par exemple à la lecture d’un enregistrement de base de données.
Il suffira de créer la function adéquate qui se chargera de créer le tableau PHP.
On peut utiliser l’option function_before dans les options phpMyForm.

Génération dynamique de la définition des champs du formulaire

Attribut init_fields :

Si on a besoin de définir dynamiquement les champs du formulaire dans le script.

Cela primera sur l’utilisation du fichier form_definition.ini si défini.

$my_form->init_fields = $array;

Exemple :

// Exemple pour un formulaire : doc-init-fields
$toto = [];
$toto['champ1']['field_type'] = 'text';
$toto['champ1']['label'] = 'Champ #1';
$toto['champ1']['text_bottom'] = '<small><em>Texte en dessous</em></small>';
$toto['champ1']['rules']['required']['value'] = 1;
$toto['champ2']['field_type'] = 'checkbox';
$toto['champ2']['label'] = 'Champ #2';
$toto['champ2']['text_after'] = 'Une case à cocher';
// ************************************************
$my_form = new PhpMyForm('doc-init-fields');
$my_form->init_fields = $toto;
$my_form->form();

L'exemple ci-desssus va générer ce simple formulaire :

Texte en dessous

Champ #2
 

Ajout de champs ou modification de champs existants

Attribut add_fields :

$my_form->add_fields = $array;

Contrairement à l'attribut init_fields qui remplace totalement le fichier form_definition.ini, l'attribut add_fields permet d'ajouter dynamiquement soit :

Exemple :

// Dans le formulaire form-titi :
// ------------------------------
$toto = [];
// 1) On veut ajouter le champ texte 'tata' en 3ème posiion du formulaire
$toto['tata']['field_type'] = 'text';
$toto['tata']['label'] = 'Champ #1';
$toto['tata']['offset_field'] = 3;
// 2) Et on veut ajouter au champ 'riri' la class 'ma-classe'
$toto['riri']['class'] = 'ma-classe';
// ************************************************
$my_form = new PhpMyForm('form-titi');
$my_form->add_fields = $toto;
$my_form->form();

Exclusion de champs

Attribut exclude_fields :

Si dans le script, on a besoin d'exclure un ou plusieurs champs. On créé un tableau contenant les id des champs à exclure.

Les champs ne sont pas supprimés du fichier form_definition.ini (ou du tableau init_fields si les champs du formulaire sont définis dynamiquement dans le script), ils ne sont seulement pas affichés dans le formulaire.

Exemple, si on veut exclure du formulaire les champs qui ont pour id toto et tata :

$my_form->exclude_fields = ['toto', 'tata'];

Initialisation d'options

Attribut init_options :

Si on a besoin d'initialiser des options du formulaire dans le script avant son affichage.
Création d'un tableau qui va fusionner avec form_options.ini si existe.

$my_form->init_options = $array;

Si erreur (message affiché) dans form_options.ini (et même si $my_form->init_options est défini) ce sont les options par défaut qui seront utilisées.

Si une option est initalisée à la fois dans le script et dans form_options.ini, la valeur de l'option dans le script prime.

Exemple :

Initialisation des options button_name et function_after directement dans le script.

// Exemple pour un formulaire : test_init_options
$toto = [];
$toto['options']['button_name'] = 'Enregistrer';
$toto['options']['function_after'] = 'my_function';
// ************************************************
$my_form = new PhpMyForm('test_init_options');
$my_form->init_options = $toto;
$my_form->form();

Ajout de champ(s) text type hidden

Attribut hidden_field :

Possibilté d’ajouter un(ou plusieurs) champ(s) caché(s) au formulaire.

$my_form->hidden_field = array(
                         'name01' => 'value01',
                         'name02' => 'value02',
                         ...
                         );

Là aussi, ce tableau php peut être créé dynamiquement. Pour reprendre l’exemple de la base de données, on mettra en champ caché l’idendifiant de l’enregistrement lu que l’on veut modifier. Il sera donc envoyé lors de la soumission du formulaire.

Le(ou les) champ(s) caché(s) est(sont) construit(s) de cette forme.

<input type="hidden" name="name01_form_name" value="value01">
<input type="hidden" name="name02_form_name" value="value02">
...

Appel de la méthode form()

Affichage du formulaire :

$my_form->form();