w w w. a g r o p a r i s t e c h. f r Système d information http://www.agroparistech.fr/systeme-d-information.html Formulaires avec AgroSIXPack Liliana IBANESCU UFR Informatique Département MMIP Année 2014 2015
Formulaire Utilisé pour l interaction avec l utilisateur Interaction en 3 temps 1. Afficher le formulaire. 2. Coté utilisateur: Saisir de(s) donnée(s) Envoyer 3. Traiter les données saisies. 2
Exemple 1. Afficher le formulaire 2. Coté utilisateur: Saisir de(s) donnée(s) Envoyer OK 3 3. Traiter les données saisies 3
Comment coder? Il faut créer 2 fichiers: Un fichier pour afficher le formulaire Un fichier pour le traitement des données 4
1. Afficher le formulaire Fichier affiche-form.php function afficher_formulaire() { debut_formulaire( saisie, traitement.php ); // les composants du formulaire // à compléter fin_formulaire(); function main() { afficher_formulaire(); 5
3. Traitement des données Structure du fichier traitement.php function traiter_formulaire() { // Récupération des données saisies dans le formulaire // à compléter // Utilisation des données // à compléter function main() { // Récupération du nom du formulaire $id_formulaire = get_id_formulaire(); if($id_formulaire === saisie') { traiter_formulaire(); else { printline('vous devez passer par le formulaire'); 6
Exemple 1. Afficher le formulaire. fichier bouteilles-form.php 2. Coté utilisateur: Saisir de(s) donnée(s) Envoyer OK 3 3. Traiter les données saisies fichier bouteilles.php 7
Exemple : Fichier bouteilles-form.php function afficher_formulaire() { debut_formulaire('bouteilles, 'bouteilles.php ); afficher_champ_texte('nb_bouteilles', 'Nombre de bouteilles de bière :'); fin_formulaire(); function main() { afficher_formulaire(); Le formulaire affiché 8
Exemple : Fichier bouteilles.php function traiter_formulaire() { // Récupération des données saisies dans le formulaire $nb_bouteilles = valeur_champ('nb_bouteilles'); // Utilisation des données $i = $nb_bouteilles; while($i > 0) { printline($i.' bottles of beer on the wall, '.$i. ' bottles of beer.'); printline('take one down, pass it around,.($i-1).' bottles of beer on the wall.'); printline(); $i--; printline('no more bottles of beer on the wall, go to the store and buy some more.'); function main() { $id_formulaire = get_id_formulaire(); // Récupération du nom du formulaire if($id_formulaire === 'bouteilles') { traiter_formulaire(); else { printline('vous devez passer par le formulaire'); 9
Composants d un formulaire Composants (contrôles graphiques) d un formulaire: champ de saisie de texte champ paragraphe champ pour saisir un mot de passe liste de sélection (liste déroulante) case à cocher; groupe de cases à cocher bouton(s) radio un bouton submit 10
Formulaire Champ texte Liste de sélection Case(s) à cocher (checkbox) Bouton(s) radio Bouton submit 11
Afficher un champ texte function afficher_formulaire() { debut_formulaire( form1, traitement.php ); // les composants du formulaire // un champ texte afficher_champ_texte( prenom, Prenom :, John ); fin_formulaire( form1, Envoyer ); function main() { afficher_formulaire(); Dans le formulaire Signature // $nom : string // $texte : string // $valeur : string function afficher_champ_texte( $nom, $texte, $valeur = ) 12
Afficher une liste de sélection function afficher_formulaire() { debut_formulaire( form1, traitement.php ); // les composants du formulaire // une liste de sélection (liste déroulante) debut_select( liste, Choix : ); afficher_select_item( premier ); afficher_select_item( second, 2); fin_select(); fin_formulaire( form1, Envoyer ); function main() { afficher_formulaire(); Dans le formulaire 13
Afficher un groupe de cases à cocher function afficher_formulaire() { debut_formulaire( form1, traitement.php ); // les composants du formulaire // un groupe de cases à cocher debut_groupe_checkbox( animaux, Quels animaux possédezvous? ); afficher_checkbox_item( chat, Chat ); afficher_checkbox_item( chien, Chien, true); afficher_checkbox_item( lapin, Lapin, true); fin_groupe_checkbox( animaux ); fin_formulaire( form1, Envoyer ); function main() { afficher_formulaire(); Dans le formulaire 14
Traitement du formulaire 1. Phase de récupération des données 2. Phase d utilisation des données Affichage Validation Rediriger vers une autre page Construire des requêtes Réaliser un formulaire 15
Traitement du formulaire 1. Phase de récupération des données a. Utiliser la structure du fichier traitement.php b. Fonctions du AgroSIXPack valeur_champ valeur_checkbox - pour une seule case à cocher 2. Phase d utilisation 16
Récupération des données function traiter_formulaire() { // Récupération des données saisies dans le formulaire $prenom = valeur_champ('prenom'); // Utilisation des données function main() { $id_formulaire = get_id_formulaire(); if($id_formulaire == 'form1') { traiter_formulaire(); else { printline('vous devez passer par le formulaire'); traitement.php Nom du champ texte Dans le formulaire function afficher_formulaire() { debut_formulaire( form1, traitement.php ); // les composants du formulaire // un champ texte afficher_champ_texte( prenom, Prenom :, John ); fin_formulaire( form1, Envoyer ); 17
Récupération des données (2) function traiter_formulaire() { // Récupération des données saisies dans le formulaire $le_choix = valeur_champ('liste'); // Utilisation des données function main() { $id_formulaire = GETref('id_formulaire'); if($id_formulaire == 'form1') { traiter_formulaire(); else { printline('vous devez passer par le formulaire'); traitement.php Nom de la liste déroulante Dans le formulaire function afficher_formulaire() { debut_formulaire( form1, traitement.php ); debut_select( liste, Choix : ); afficher_select_item( premier ); afficher_select_item( second, 2); fin_select(); fin_formulaire( form1, Envoyer ); 18
Récupération des données (3) function traiter_formulaire() { // Récupération des données saisies dans le formulaire $les_choix = valeur_champs('animaux'); // Utilisation des données traitement.php!!! un tableau associatif Nom du groupe de cases à cocher Dans le formulaire function afficher_formulaire() { debut_formulaire( form1, traitement.php ); debut_groupe_checkbox( animaux, Quels animaux possédez-vous? ); afficher_checkbox_item( chat, Chat ); afficher_checkbox_item( chien, Chien, true); afficher_checkbox_item( lapin, Lapin, true); fin_groupe_checkbox( animaux ); fin_formulaire( form1, Envoyer ); 19
function traiter_formulaire() { // Récupération des données saisies dans le formulaire $les_choix = valeur_champ('animaux'); // Utilisation des données : afficher un tableau associatif foreach($les_choix as $nom_animal) { printline('vous avez un '. $nom_animal); traitement.php Dans le formulaire function afficher_formulaire() { debut_formulaire( form1, traitement.php ); debut_groupe_checkbox( animaux, Quels animaux possédez-vous? ); afficher_checkbox_item( chat, Chat ); afficher_checkbox_item( chien, Chien, true); afficher_checkbox_item( lapin, Lapin, true); fin_groupe_checkbox( animaux ); fin_formulaire( form1, Envoyer ); 20
Traitement du formulaire 1. Phase de récupération des données 2. Phase d utilisation Affichage Validation Rediriger vers une autre page Construire des requêtes Réaliser un formulaire 21
Affichage de données debut_liste(); afficher_liste_item( premier ); afficher_liste_item( second ); afficher_liste_item( troisième ); fin_liste(); premier second troisième a b c debut_table(); afficher_table_ligne(array( a, b, c ) ); afficher_table_ligne(array( 1, 2, 3 ) ); afficher_table_ligne(array( x, y, z ) ); fin_table(); 1 2 3 x y z 22
Traitement du formulaire 1. Phase de récupération des données 2. Phase d utilisation Affichage Validation: is_numeric is_string is_bool Rediriger vers une autre page afficher_lien_externe afficher_lien_interne 23
Exemple: menu function afficher menu() { printline( Que voulez vous faire? ); debut_liste(); afficher_liste_item(afficher_lien_interne( Afficher le détail d\ une commande, detail.php ); afficher_liste_item(afficher_lien_interne( Nouvelle commande, commande.php ); afficher_liste_item(afficher_lien_interne( Ajouter un client, client.php ); fin_liste(); function main() { afficher_menu(); 24