M1202 - Algorithmique et PHP
Transcription
M1202 - Algorithmique et PHP
M1202 - Algorithmique et PHP David Annebicque 2016 1 Quelques rappels sur les formulaires 1.1 Structure de base La structure d’un formulaire de saisie est simple, elle se compose d’un élément FORM contenant essentiellement une suite de contrôles (éléments input, textarea, select, button, etc.) mais aussi des éléments de structuration de document afin d’aligner correctement les champs d’entrée. Listing 1 – Exemple de formulaire 1 < form method = " (1) " action = " (2) " > 2 du texte , des boutons , des zones de saisie ... 3 < input type = " submit " value = " (3) " / > 4 </ form > 1. désigne la méthode à utiliser pour envoyer les informations ; c’est « GET » (par défaut ; les données du formulaire sont envoyées dans l’URL) ou « POST » (les données sont envoyées dans le corps du message, elles ne sont donc pas visibles dans l’URL). 2. désigne l’URL du programme (PHP dans notre cas) qui va traiter les données. 3. désigne le texte qui va apparaı̂tre dans le bouton d’envoi. 1.2 1.2.1 Les principaux contrôles Input Les zones de saisie, les boutons radios et les cases à cocher sont définis par ce contrôle; la syntaxe (simplifiée) en est : 1 Listing 2 – Exemple ”input” 1 < input type = " type " name = " nom " value = " valeur " / > où : — type peut être : — text : pour une zone de saisie au sens habituel du terme (une zone rectangulaire où l’utilisateur écrit des données, sur une seule ligne); c’est ce qui sera dans cette zone qui sera envoyé au programme de traitement; — password : pour une zone de saisie de mot de passe (identique à text, mais le texte saisi n’apparaı̂t à l’écran que sous la forme d’astérisques, pour éviter d’être lisible par une tierce personne); — checkbox : pour une case à cocher (a priori pour un choix multiple); — radio : pour un bouton radio (des boutons radios de même nom sont mutuellement exclusifs); — submit : pour un bouton d’envoi; c’est le clic sur ce bouton qui envoie le contenu du formulaire au programme de traitement; — hidden : pour une variable cachée; permet de cacher des valeurs nécessaires au traitement mais qu’on ne veut pas voir affichées à l’écran; attention, caché ne veut pas dire secret : ces valeurs sont visibles dans le code source de la page; — reset : pour remettre les zones de saisie à leurs valeurs par défaut (les valeurs qu’elles ont lors du chargement de la page); — file : pour permettre à l’utilisateur de choisir un fichier sur son ordinateur. Il faudra gérer l’upload dans la partie traitement — nom est le nom de la variable qui sera envoyé au programme; cela n’a a priori pas de sens pour un bouton submit ou reset, mais c’est absolument nécessaire pour les autres; les zones doivent en principe avoir des noms différents, sauf pour le boutons radios : les boutons radios de même nom sont mutuellement exclusifs ; — value est la valeur du contrôle 1.2.2 select Pour créer des listes déroulantes ; exemple d’utilisation : Listing 3 – Exemple ”select” 1 < select 2 3 4 name = " menu " > < option > premier choix </ option > < option > deuxieme choix </ option > < option > troisieme choix </ option > 2 5 </ select > Cette zone permettra d’envoyer une variable de nom menu qui aura pour valeur le choix sélectionné. Pour pré-sélectionner un choix dans la liste il suffit d’ajouter l’attribut selected=”selected” dans la balise <option> correspondante. On peut avoir besoin d’envoyer une valeur différente de ce qui est affichée (par exemple demander à l’utilisateur de choisir une personne par ses nom et prénom, et envoyer l’identifiant de cette personne dans une table d’une base de données). On utilisera alors l’attribut value dans la balise <option> comme par exemple : Listing 4 – Exemple ”select” avec valeur définie 1 < select name = " responsable " > 2 < option value = " 1 " > marcel durand </ option > 3 < option value = " 2 " > georges dupont </ option > 4 < option value = " 3 " > pierre martin </ option > 5 </ select > Dans cet exemple si on choisit georges dupont la variable responsable aura la valeur 2. 1.2.3 textarea Pour des zones de saisies plus grandes qu’avec input ; exemple d’utilisation : Listing 5 – Exemple ”textarea” 1 < textarea name = " nom " rows = " 4 " cols = " 40 " > 2 Texte par defaut ... 3 </ textarea > 2 2.1 Exercices Exercice 1 : Calculatrice Écrire un formulaire « calculatrice » qui comprendra 2 cases (zone de saisie libre) pour la saisie des nombres (opérande), un groupe de 4 cases à cocher pour le choix de l’opération, un bouton pour effectuer l’opération. 3 2.2 Exercice 2 : Table de multiplication Écrire un formulaire qui demande deux nombres a et b. Il affiche ensuite la table de multiplication par a sur b lignes. 2.3 Exercice 3 : Petit jeu Vous devez deviner le nombre que le programme a choisi. Vous proposez une solution, et le programme vous répond « trop petit » ou « trop grand » suivant le cas, jusqu’à trouver le bon nombre. 4