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¶m2=value2&...');
- form_name : nom du formulaire.
- Paramètres optionnels :
- link_edit (0 / 1)
Valeur défaut : 1
Affiche le lien d'édition du formulaire (Il faut être connecté à l'administation phpMyForm pour que le lien s'affiche).
- link_edit (0 / 1)
<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 :
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 :
- Un (ou plusieurs) champ(s) complet(s) et leur attribuer une position dans le formulaire.
Pour positionner le champ dans le formulaire, on initialise l'attribut offset_field avec la position désirée dans le formulaire (voir l'exemple ci-dessous).
Si offset_field est omis, les nouveaux champs se mettront à la fin du formulaire dans l'ordre de leur définition dans le script. - Un (ou plusieurs) paramètre(s) à un champ existant.
Si le paramètre existe déjà dans form_definition.ini, il sera remplacé par celui défini dans le script).
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();
Source : https://nonoweb.net/phpmyform-instanciation-de-la-class