Intégration formulaire phpMyForm

Intégration dans page web du formulaire

Instanciation de la class PhpMyForm

$my_form = new PhpMyForm('form_name', $params = array());
  • form_name : nom du formulaire
<form id="form_name" method="post" ... />
  • $params : Paramètres optionnels (usage futur).

Initialisation du formulaire

Initialisation d'un tableau (attribut init_data) pour initialiser les champs du formulaire avant l'appel de la méthode form (Optionnel).

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

Donc, 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.

Ajout de champs text type hidden

Possibilté d'ajouter un(ou plusieurs) champ(s) caché(s) au formulaire (attribut hidden_field).

$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 qu'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();

Récupération des valeurs du formulaire pour traitement

Le script phpMyForm génère un seul tableau contenant les valeurs de tous les champs du formulaire.

Structure du tableau :

Array(
  'field_name1' => 'value1',
  'field_name2' => 'value2',
  'field_name3' => array(
                  'key1' => 'value1',
                  'key2' => 'value2',
                  'key3' => 'value3',
                   ...
                   ),
...
);

Pour récupérer les valeurs de ce tableau pour traitement, on crée une fonction qui sera exécutée après la soumission du formulaire.
Option function_after (Options du formulaire).

Initialisation et sauvegarde

Le script phpMyForm permet d'initialiser et de sauvegarder les champs du formulaire.

Cela va dépendre de la valeur de l'option mod (Options du formulaire).

Initialisation

Les champs du formulaire peuvent-être initialisés depuis :

Un enregistrement de base de données

Si cet enregistrement n'existe pas, les champs du formulaire seront initialisés avec les valeurs défauts (si définies dans le fichier form_definition.ini).

Les valeurs des champs du formulaire sont stockées sous forme sérialisée dans la base de données.
La value du champ dans la base données est par défaut form_name_data (form_name = nom du formulaire).
(Peut être défini autrement. Voir l'option db_data_name dans les options du formulaire).

Exemple d'un enregistrement en base de données :

a:3:{s:11:"field_name1";s:6:"value1";
s:11:"field_name2";s:6:"value2";
s:11:"field_name3";s:6:"value3";}

Création table pour demo :

CREATE TABLE IF NOT EXISTS `pmf_form_data` (
`data_name` varchar(100) NOT NULL,
`data_value` text,
PRIMARY KEY (`data_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Table pour test phpMyForm';

Note : Voir le fichier include/connect.php pour pmf_form_data, data_name et data_value pour changer ces valeurs par défaut.

Une option WordPress

Les champs sont initialisés à partir d'un enregistrement de la table wp_options de WordPress.

On utilisera dans le cas d'un formulaire dans une page d'administration de WordPress par exemple. Cela ne fonctionne donc QUE dans WordPress.

Si cet enregistrement n'existe pas, les champs du formulaire seront initialisés avec les valeurs défauts (si définies dans le fichier form_definition.ini).

le nom de l'option dans WordPress est par défaut pmf_form_name_data (form_name = nom du formulaire).
(Peut être défini autrement. Voir l'option wp_option_name dans les options du formulaire).

Un fichier PHP

Si ce fichier n'existe pas, les champs du formulaire seront initialisés avec les valeurs défauts (si définies dans le fichier form_definition.ini).

Le nom du fichier PHP est par défaut form_name_data.php (form_name = nom du formulaire).
(Peut être défini autrement. Voir l'option php_data_name dans les Options du formulaire).
La variable array est automatiquement de la forme $form_name_data.

Obs. Si on change le nom du fichier PHP, la variable array prendra donc le nouveau nom (sans l'extension php!).
Ex. Si on définit l'option php_data_name avec la valeur toto, notre variable array sera donc : $toto (dans le fichier php toto.php).

Ce fichier PHP se trouve dans le dossier phpMyForm/form/form_name.

Exemple de fichier PHP :

$form_name_data = array (
                  'field_name1' => 'value1',
                  'field_name2' => 'value2',
                  'field_name3' => 'value3',
                  );

Un tableau Array pour initialiser les champs du formulaire avant l'appel de la méthode form()

Initialisation des champs du formulaire :

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

Cela peut-être utile, par exemple, pour gérer les enregistrements d'un fichier dans une base de données (création, modification, suppression,...).
Il suffira de charger le tableau $my_form->init_data avec les valeurs de l'enregistrement lu, et de créer une fonction (Options du formulaire) qui enregistrera les modifications en base de données.

Exemple : Gestion d'une base de données

Sauvegarde

Les champs du formulaire peuvent-être sauvegardés dans :

  1. Un enregistrement (s'il n'existe pas, il sera créé) d'une base de données MySQL.
  2. Une option WordPress (dans la table wp_options).
  3. Ou dans un fichier PHP (s'il n'existe pas il sera créé).

Cela va dépendre de la valeur de l'option mod (Options du formulaire).

Ces sauvegardes sont uniques. Une nouvelle sauvegarde écrasera la précédente.
Cela peut-être utile, par exemple, pour gérer les options d'un site web.