Pratique de MySQL et PHP- P36 ppt

5 251 0
Pratique de MySQL et PHP- P36 ppt

Đang tải... (xem toàn văn)

Thông tin tài liệu

3.3 La classe Formulaire 153 Par ailleurs la classe Formulaire doit également fournir des fonctionnalités de placement des champs et des libellés les uns par rapport aux autres, ce qui peut se gérer à l’aide de tableaux HTML. La figure 3.4 montre les possibilités attendues, avec des traits en pointillés qui indiquent le tableau HTML permettant d’obtenir un alignement régulier des dif- férents composants du formulaire. La première partie présente les champs dans un tableau à deux colonnes, la première correspondant aux libellés, et la seconde aux champs quel que soit leur type : texte, mot de passe, liste déroulante, etc. Dans le cas où le champ consiste en un ensemble de choix matérialisés par des boutons (le champ 4 dans la figure), on souhaite créer une table imbriquée associant à chaque bouton un sous-libellé, sur deux lignes. Ce premier type de présentation sera désigné par le terme Mode Table, orientation verticale. Choix a Choix b Choix c Libellé 1 Libellé 2 Libellé 3 Libellé 4 Libellé Valider Libellé X Libellé Y Libellé Z Mode Table, horizontal champ 1 champ 2 champ 3 champ X champ Y champ Z champ X champ Y champ Z Mode Table, vertical Mode libre Figure 3.4 — Conception de la classe Formulaire Ladeuxièmepartieduformulairedelafigure3.4organiselaprésentationen autant de colonnes qu’il y a de champs, ces colonnes étant préfixées par le libellé du champ. Ce mode de présentation, désigné par le terme Mode Table, orientation horizontale, permet d’affecter plusieurs zones de saisie pour un même champ, une par ligne. Enfin, le formulaire doit permettre une présentation libre – c’est-à-dire sans alignement à l’aide de tableau – comme le bouton de validation à la fin du formulaire. La classe doit proposer un ensemble de méthodes pour créer tous les types de champs possibles dans un formulaire HTML, et disposer chaque champ en fonction du mode de présentation qui a été choisi. Cela suppose que l’objet chargé de produire 154 Chapitre 3. Programmation objet le formulaire connaisse, lors de la création du champ, le mode de présentation courant. En résumé il s’agit d’implanter une fois pour toutes, sous forme de classe orientée- objet, les tâches courantes de production et de mise en forme de formulaire que l’on trouve dans toutes les applications web en général, et tout particulièrement dans les applications s’appuyant sur une base de données. 3.3.2 Utilisation Commençons par présenter l’utilisation de la classe avant d’étudier ses mécanismes internes. La liste des méthodes publiques est donnée dans la table 3.8. Elles appar- tiennent à deux catégories : Tableau 3.8 — Les méthodes publiques de la classe Formulaire Méthode Description champTexte (libell´e, nom, val, long, longMax ) Champdesaisiedetexte. champMotDePasse (libell´e, nom, val, long, longMax ) Champ de saisie d’un mot de passe. champRadio (libell´e, nom, val, liste ) Boutons radio champListe (libell´e, nom, val, taille, liste ) Boutons select champFenetre (libell´e, nom, val, ligs, cols ) Boutons textarea champCache (nom, val ) Champ caché. champFichier (libell´e, nom, taille ) Champ fichier (upload). champValider (libell´e, nom ) Bouton submit debutTable (orientation, attributs, nbLignes ) Entrée en mode table. ajoutTexte (texte ) Ajout d’un texte libre. finTable () Sortie du mode table. getChamp (idChamp ) Récupération d’un champ du formu- laire. formulaireHTML () Retourne la chaîne de caractères conte- nant le formulaire HTML. • Production d’un champ de formulaire. À chaque type de champ correspond une méthode qui ne prend en argument que les paramètres strictement nécessaires au type de champ souhaité. Par exemple la méthode champTexte() utilise un libellé, le nom du champ, sa valeur par défaut, sa taille d’affichage et la taille maximale (ce dernier para- mètre étant optionnel). Parmi les autres méthodes, on trouve champRadio(), champListe(), champFenetre(),etc. Chaque méthode renvoie l’identifiant du champ créé. Cet identifiant permet d’accéder au champ, soit pour le récupérer et le traiter isolément (méthode getChamp()), soit pour lui associer des contrôles Javascript ou autres. • Passage d’un mode de présentation à un autre. Ces méthodes permettent d’indiquer que l’on entre ou sort d’un mode Table, en horizontal ou en vertical. 3.3 La classe Formulaire 155 Voici un premier exemple illustrant la simplicité de création d’un formulaire. Il s’agit d’une démonstration des possibilités de la classe, sans déclenchement d’aucune action quand le formulaire est soumis. Nous verrons dans le chapitre 5 comment utiliser cette classe en association avec la base de données pour créer très rapidement des interfaces de saisie et de mise à jour. Exemple 3.9 exemples/ApplClasseFormulaire.php : Exemple démontrant les possibilités de la classe Formulaire. <?xml version=" 1.0 " encoding=" iso −8959−1"?> <!DOCTYPE ht ml PUBLIC " −/ /W3C / / DTD XHTML 1 . 0 S t r i c t / / EN " "http ://www.w3. org/TR/xhtml1/DTD/xhtml1−strict .dtd"> <html xmlns="http ://www.w3. org /1999/xhtml" xml: lang=" fr " > <head> <title >Création d’un formulaire </title > <link rel=’stylesheet ’ href="films .css" type="text/ css"/> </head> <body> <?php require_once (" Formulaire.php") ; // Instanciation du formulaire $form = new Formulaire (" post", "ApplClasseFormulaire .php") ; // Un champ caché $form−>champCache ("mode" , "Démonstration") ; // Tableau en mode vertical , avec quelques champs $form−>debutTable(Formulaire ::VERTICAL) ; $form−>champTexte ("Nom" , "nom" , "Entrez votre nom" , 40) ; $form−>champTexte (" Prénom" , "prenom " , " Entrez votre prénom " , 40) ; / / Un champ radio , avec la l i st e des choix dans un tableau PHP $form−>champRadio ("Sexe" , "sexe ", "M" , array ("M" => "Masculin" , "F"=>"Féminin")); // Un champ select , avec la liste des choix dans un tableau PHP $form−>champListe (" J ustificatif " , "nation ", " cni ", 1, array( "cni"=>"Carte d’identité" , "pass"=>"Passeport" , "pc"=>"Permis de conduire")) ; / / Un champ textar ea $form−>champFenetre (" Bref CV" , "cv" , "Votre CV en quelques lignes" , 4, 50); / / Un champ fi ch ie r $form−>champFichier (" Votre photo" , "photo" , 30) ; / / Fin du mode v e rt ic al $form−>finTable() ; 156 Chapitre 3. Programmation objet $form−>ajoutTexte ("<b>Vos enfants </b>") ; // Tableau en mode horizontal , avec 5 lignes $form−>d e b u t T ab l e ( F o r m u l a i r e : : HORIZONTAL, a r r a y ( ) , 5 ) ; $form−>champTexte ( "Prénom" , "prenom [] " , "" , 20 , 30) ; $form−>champTexte ("Nom", "nom[]", "", 20, 30); $form−>champTexte ("Né en" , "annee_naissance [] " , "" , 4); $form−>finTable () ; // Bouton de validation , avec placement libre $form−>champValider ("Valider la saisie" , "valider"); // Affichage du formulaire echo $form−>formulaireHTML() ; ?> Figure 3.5 — Affichage du formulaire de démonstration. L’affichage du formulaire est donné dans la figure 3.5. Quelques lignes de spé- cification, accompagnées du nombre strictement minimal de paramètres, suffisent pour créer ce formulaire, sans qu’il soit nécessaire d’avoir à produire explicitement la moindre balise HTML. Cet avantage est d’autant plus appréciable que le résultat comprend une imbrication assez complexe de balises de formulaires, de tableaux, et de données provenant du script PHP, qui seraient très fastidieuses à intégrer si l’on ne disposait pas de ce type d’outil automatisé. 3.3 La classe Formulaire 157 3.3.3 Implantation L’implantation de la classe nécessite des structures internes un peu plus sophistiquées que celles vues jusqu’à présent. Il s’agit en effet de décrire le contenu d’un formu- laire, sous une forme offrant le plus de souplesse possible. On doit être capable par exemple de récupérer individuellement la description HTML de l’un des champs, ou de désigner un champ auquel on souhaite associer un contrôle Javascript. Enfin les propriétés doivent contenir toutes les informations nécessaires pour produire la chaîne HTML du formulaire. On va représenter ce contenu sous la forme d’une liste de composants,àchoisir parmi • un champ de saisie, accompagné de son libellé ; • un texte libre à insérer dans le formulaire ; • l’indication d’un début de tableau, accompagné des caractéristiques du tableau ; • l’indication d’une fin de tableau. La figure 3.6 montre l’organisation globale de la classe, en distinguant la partie publique (en haut) proposant une interface à l’utilisateur, et une partie privée (en bas) constituée de méthodes internes et de propriétés (essentiellement, ici, les composants). Le principe général est que toutes les méthodes insèrent de nouveaux composants, sauf formulaireHTML() qui va consulter les composants existants pour produire le formulaire. Utilisateur Interface composants (1) (2) champINPUT() champSELECT() champTEXTAREA() debutTable() champTexte() champSelect() ajoutTexte() finTable() formulaireHTML() champLibelle() Partie privée Partie publique Figure 3.6 — Organisation de la classe Formulaire REMARQUE – On pourrait (devrait ) créer une classe FormComposant pour représenter et manipuler ces composants. En programmation objet, tout concept doit donner lieu à la création d’une classe, avec des avantages à moyen et long terme en matière d’évolutivité. L’inconvénient est de rendre la conception et l’organisation des classes plus ardu à maîtriser. C’est la raison pour laquelle nous n’allons pas plus loin, au moins dans ce chapitre. L’insertion d’un nouveau composant se fait directement pour le début ou la fin d’une table, et pour l’ajout d’un texte. Pour l’ajout d’un champ accompagné de son . autres méthodes, on trouve champRadio(), champListe(), champFenetre(),etc. Chaque méthode renvoie l’identifiant du champ créé. Cet identifiant permet d’accéder au champ, soit pour le récupérer et le. appar- tiennent à deux catégories : Tableau 3.8 — Les méthodes publiques de la classe Formulaire Méthode Description champTexte (libell´e, nom, val, long, longMax ) Champdesaisiedetexte. champMotDePasse. fonction du mode de présentation qui a été choisi. Cela suppose que l’objet chargé de produire 154 Chapitre 3. Programmation objet le formulaire connaisse, lors de la création du champ, le mode de présentation courant. En

Ngày đăng: 06/07/2014, 00:20

Mục lục

    Première partie – Programmation web avec MySQL/PHP

    Chapitre 1 – Introduction à MySQL et PHP

    1.1 Introduction au Web et à la programmation web

    1.1.2 Documents web : le langage XHTML

    1.2 Programmation web avec MySQL et PHP

    1.3 Une première base MySQL

    1.3.1 Création d'une table

    1.3.2 L'utilitaire mysql

    1.3.3 L'interface PhpMyAdmin

    1.4 Accès à MySQL avec PHP

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan