Programmation Web IMAC 2015-2016. TD 8 : Formulaires. 2 décembre 2015



Documents pareils
Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Création de formulaires interactifs

TP JAVASCRIPT OMI4 TP5 SRC

Programmation Web. Madalina Croitoru IUT Montpellier

EXTENSION WORDPRESS. Contact Form 7. Proposé par :

Optimiser pour les appareils mobiles

NFA016 : Introduction. Pour naviguer sur le Web, il faut : Naviguer: dialoguer avec un serveur web

Formation : WEbMaster

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Devenez un véritable développeur web en 3 mois!

Formulaire pour envoyer un mail

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

Attaques applicatives

Introduction à. Oracle Application Express

Nouveautés joomla 3 1/14

PARAMETRER INTERNET EXPLORER 9

WebSpy Analyzer Giga 2.1 Guide de démarrage

Webmaster / Webdesigner / Wordpress

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

3W Academy Programme de Formation Développeur Intégrateur web Total : 400 heures

SQL Server Installation Center et SQL Server Management Studio

Présentation du Framework BootstrapTwitter

HTML. Notions générales

Formulaires et Compteurs

Contenu. Thème «responsive» pour WordPress Installer le thème responsive (disponible aussi sur le site wordpress.org) Activer ce thème

De EnvOLE 1.5 à EnvOLE 2. Document pour l administrateur

Édu-groupe - Version 4.3

Formation Webmaster : Création de site Web Initiation + Approfondissement

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

RELEASE NOTES. Les nouveautés Desktop Manager 2.8

Intégrateur Web HTML5 CSS3

Manuel du composant CKForms Version 1.3.2

EXCEL TUTORIEL 2012/2013

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

Créer et partager des fichiers

ECLIPSE ET PDT (Php development tools)

WEB & DÉVELOPPEMENT LES BASES DU WEB LE LANGAGE HTML FEUILLES DE STYLES CSS HISTORIQUE D INTERNET ET DU WEB LES DIFFÉRENTS LANGAGES

TD3 - Facturation avec archivage automatisé

CARPE. Documentation Informatique S E T R A. Version Août CARPE (Documentation Informatique) 1

Afin d accéder à votre messagerie personnelle, vous devez vous identifier par votre adresse mail et votre mot de passe :

ENVOYER DES NEWSLETTER (POM0580) (/PORTAIL/SERVICES-AU-PUBLIC/1262- ENVOYER-DES-NEWSLETTER-POM0580)

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

PREMIERE UTILISATION D IS-LOG

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Windows Serveur 2012 : DHCP. Installation et mise en place

Manuel d utilisation du web mail Zimbra 7.1

Sessions en ligne - QuestionPoint

Guide d utilisation des services My Office

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

COURS 5 Mettre son site en ligne! Exporter son site avec WordPress Duplicator Installer un logiciel FTP Faire le suivi des visites de son site avec

La carte de contrôle chômage complet

CRÉER, ROUTER ET GÉRER UNE NEWSLETTER, UN ING

MO-Call pour les Ordinateurs. Guide de l utilisateur

Manuel d utilisation du module Liste de cadeaux PRO par Alize Web

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

pas à pas prise en main du logiciel Le Cloud d Orange - Transfert de fichiers sur PC et MAC Le Cloud

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

STID 2ème année : TP Web/PHP

< Atelier 1 /> Démarrer une application web

Soyez accessible. Manuel d utilisation du CMS

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Club informatique Mont-Bruno Séances du 18 janvier et du 17 février 2012 Présentateurs : Michel Gagné et Réjean Côté

Mozilla Firefox 3.5. Google Chrome 3.0 LES NAVIGATEURS WEB. (pour Windows) Opéra 10. Internet Explorer 8. Safari 4.0

WordPress, thèmes et plugins : mode d'emploi

Le stockage local de données en HTML5

Créer un site Web : mode d emploi Sous SPIP, avec le squelette «établissement» de l académie de Versailles

Module BD et sites WEB

DU Endoscopie. Guide d utilisation. chirurgicale. Diplôme Universitaire d Endoscopie Chirurgicale

Administration du site (Back Office)

Nouveautés dans Excel 2013

Bureautique Initiation Excel-Powerpoint

Notes pour l utilisation d Expression Web

Créer une base de données vidéo sans programmation (avec Drupal)

Thunderbird est facilement téléchargeable depuis le site officiel

TD HTML AVEC CORRECTION

Guide de l utilisateur du Centre de gestion des licences en volume LICENCES EN VOLUME MICROSOFT

Retour table des matières

SOMMAIRE. 1. Connexion à la messagerie Zimbra Pré-requis Ecran de connexion à la messagerie 4

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

KWISATZ MODULE PRESTASHOP

Apps Sage : les 10 étapes pour publier vos données dans le Cloud.

Formation. Module WEB 4.1. Support de cours

Survol des nouveautés

Guide pour le bon fonctionnement des applications académiques avec Internet Explorer 7.x

Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt

Manuel d utilisation pour la plateforme BeExcellent MANUEL D UTILISATION POUR LA PLATEFORME BEEXCELLENT

ESPACE COLLABORATIF SHAREPOINT

Syfadis. > Configuration du poste client. Nous vous aidons à réussir. REFERENCE : Syfadis LMS - 12/09/2008. AUTEUR : Equipe technique Syfadis

C RÉATION DE PDF (1) Cours SEM 205 Mieux utiliser le format PDF

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

HTML, CSS, JS et CGI. Elanore Elessar Dimar

Nouveautés de la version moodle 2.7

Freeway 7. Nouvelles fonctionnalités

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Créer le schéma relationnel d une base de données ACCESS

Point sur les solutions de développement d apps pour les périphériques mobiles

Transcription:

Programmation Web IMAC 2015-2016 TD 8 : Formulaires 2 décembre 2015 Objectif: Dans ce TD, nous allons introduire les formulaires en HTML. Pour pouvoir les utiliser on abordera aussi les plug-ins jquery (en particulier jquery UI) ainsi que l API WebStorage. 1 Formulaires HTML Les formulaires HTML sont utilisés pour collecter les entrées utilisateur. Un formulaire HTML est caractérisé par une balise <form> et possède un certain nombre d éléments, de plusieurs types. Dans la suite on va étudier les deux types les plus courantes : <input> et <select>. 1.1 Input L élément de formulaire la plus importante est <input>, utilisé pour entrer des données. Son attribut le plus important est type qui permet de définir sa fonctionalité. <input type="text"> crée un champ de texte (au plus 20 caractères) ; <input type="number"> crée un champ pour entrer un nombre ; <input type="number"> crée un champ pour entrer un adresse email ; <input type="number"> crée un champ pour entrer un mot de passe (les caractères sont masqués) ; <input type="radio"> crée un case d option, qui permet à ul utilisateur de sélectionner l un d un nombre limité de choix (une seule) ; <input type="checkbox"> crée une case à cocher, qui permet à ul utilisateur de sélectionner l un d un nombre limité de choix (plusieurs choix sont possibles) ; <input type="button"> crée un bouton sur lequel on peut cliquer (par exemple, pour activer un script) 1 ; <input type="submit"> définit un bouton pour soumettre le formulaire à un gestionnaire des formulaires, l adresse duquel est donné comme valeur à l attribut action de <form> (voir ci-dessous) ; <input type="image" src="monimage.png"> comme submit mais utilisant une image à la place du bouton ; <input type="reset"> définit un bouton pour réinitialiser toutes les valeurs du formulaire ; 1. En gros, il a le même comportement que l élément <button> que vous avez déjà rencontré. 1

etc. <form action="javascript:mafonctionpourleformulaire()"> Prénom: <br> <input type="text" name="prenom" value="moumin"><br> // La valeur par défaut sera "Moumin". Nom:<br> <input type="text" name="nom" value="peikko"><br> // La valeur par défaut sera " Peikko". <input type="radio" name="sexe" value="homme" checked>homme<br> // La case sera cochée par défaut. <input type="radio" name="sexe" value="femme">femme<br> <br> <input type="submit" value="soumettre"> </form> Un gestionnaire de formulaires est généralement une page sur un server avec un script pour le traitement des données d entrée. Le format le plus utilisé est le.php. L adresse de cette page est spécifié dans l attribut action de l élément <form>, par exemple <form action="mapagedynamique.php" method="post">. Dans ce cours on ne vas pas apprendre comment un serveur traite des données, c est-à-dire, vous n allez pas envoyer les donnée du formulaire à un script PHP, mais les utiliser en locale à l aide de JavaScript : avec un bouton ayant l attribut onclick ou en précisant comme adresse de action une fonction du script (par exemple, <form action="javascript:mafonctionamoi()">). 1.2 Select Un autre élément du formulaire est <select>. Celui-ci définit une liste déroulante. Les options possibles sont contenus dans l élément <option>. <form> Mon caractère Moomin favori:<br> <select name="caractere"> <option value="moomin">moomin</option> <option value="shuka">la demoiselle Shuka</option> <option value="pipo">pipo</option> <option value="mie">joliemie</option> </select> </form> Exercice 1: Créez un formulaire sur votre page HTML. Celui-ci devra permettre à l utilisateur de saisir : son nom ; son prénom ; son titre de civilité (une seule choix entre «M.», «Mme» et «Mlle») ; son adresse e-mail ; sa date de naissance ; son métier ; sa nationalité (liste déroulante) ; la façon dont il a entendu parler du site, lui proposant un certain nombre de réponses possibles (plusieurs choix possibles) ; 2

une case d option lui demandant s il désire recevoir une newsletter. Comme pour tous les éléments HTML, il est possible accéder à la valeur d un élément dans un formulaire en JavaScript en utilisant (par exemple) son identifiant. Par exemple, si dans un <form> on a défini l input suivant : Mot de passe : <input type="password" name="motdepasse" id="moninputsecret"> on peut accéder à l input avec le code : document.getelementbyid("mondiv").innerhtml = document.getelementbyid(" moninputsecret").value; ou, en utilisant jquery : $("#mondiv").html($("#moninputsecret").val()); Exercice 2: En utilisant le formulaire de l exercice précédent, affichez sur la même page un titre de niveau 1 centré contenant le titre de civilité, le prénom et le nom que l utilisateur a saisi. Si l utilisauter est un homme, le titre sera coloré en rose et s il s agit d une femme le titre sera bleu. 2 Plugins jquery: jquery UI N importe quel développeur peut proposer ses modules à la communauté : c est ce qu on appelle un plug-in. Le gros avantage des plug-ins, c est qu ils nous permettent d utiliser autant de composants externes que l on souhaite, pour nous éviter de coder quelque chose que quelqu un aurait déjà fait ailleurs (et sûrement en mieux, sans offense). Outre le fait que les plug-ins nous permettent de créer des fonctionnalités complètes en quelques lignes, ceux-ci sont en général bien documentés et entièrement personnalisables. Comme vous pouvez le constater, vous allez réaliser en une ligne ce qui vous auriez mis en place en deux semaines. Vous ne ferez plus jamais votre lessive à la main, et vous allez adorer les plug-ins jquery. Grâce à une communauté de développeurs très active, un ensemble de plug-ins orientés «graphique» a été créé. Il s agit de jquery UI (pour «User Interface»). Vous pourrez y trouver des fonctionnalités de drag & drop, des nouveaux effets de transitions ou encore des widgets divers et variés (barre de progression, onglets, sélecteur de couleur...). Commencez par télécharger jquery UI. Son contenu étant varié, il est possible de le télécharger module par module, afin d éviter de charger trop de données inutiles sur sa page web. Ici, nous n aurons par exemple pas besoin de tous les nouveaux «effets» proposés dans UI. Pour commencer, allez sur la site http://jqueryui.com/ Sur la site, choisissez «Custom Download». Vous êtez alors rédiges sur une nouvelle page «Download Builder». Décochez tous («Toggle All» sous «Components»). Ensuite, cochez «Toggle All» de «UI Core», et «Autocomplete» et «Datepicker» de «Widgets». 3

Parcourez les fichiers téléchargés. En plus des CSS, JS et images nécessaires au fonctionnement des plug-ins, vous avez à votre disposition une documentation complète. Dans ce TD, vous allez utiliser les fichiers jquery-ui.js et jquery-ui.css. Joignez-les à votre page HTML (attention à l ordre d inclusion). Vous êtes maintenant prêts à utiliser tous les plug-ins UI à votre disposition! 2.1 DatePicker: Sélecteur de date Dans jquery UI vous trouverez DatePicker, un widget qui permet d afficher un calendrier qui évite à l utilisateur de saisir une date entièrement. Le DatePicker peut être lié à un champ de texte standard dans un formulaire. Quand vous cliquez sur le champ de texte, le calendrier interactif s ouvre, et quand la date est choisie le feedback est affichée sur le champ de texte. Pour ajouter un DatePicker à un élément HTML, vous faites comme l exemple suivant : $( "#monelement").datepicker({ // liste des options sépares par virgules }); Une liste d options peut être, par exemple : changemonth: true, changeyear: true, yearrange: "-10:+10", maxdate:"+2m", Dans l exemple précédente, l option «changemonth» affiche dans le calendrier une liste déroulante qui permet à l utilisateur de choisir le mois directement, tandis que «changeyear» fait le même chose, mais pour l année. «yearrange» montre les années permis par rapport à l année actuelle, et «maxdate» accepte une chaine de caractères, par exemple +2M+2Y. Utilisez «D» pour le jours, «W» pour les semaines, «M» pour les mois et «Y» pour les années. Pour une liste d options complète, voir la documentation à : http://api.jqueryui.com/datepicker/ Exercice 3: Dans vôtre formulaire, ajoutez un DatePicker au champ «Date de naissance». Cette date doit pouvoir commencer à l année 1900, mais ne doit pas dépasser la date d aujourdhui. Prendrez soin à écrire la date en format français: jour/mois/année (pensez à utiliser l option «dateformat»). 2.2 Autocomplétion Qui n a jamais joué avec Google Suggests? Vous tapez quelques lettres dans le champ de recherche, et plusieurs termes vous sont proposés. Ce procédé s appelle auto-complétion. Il est assez utilisé dans les formulaires... et est possible grâce à jquery UI! Supposons, par exemple, de vouloir simplifier la saisie du métier de l utilisateur dans le formulaire de l Exercice 1. Pour cela, nous allons établir une petite «base de données» des métiers 4

les plus courants, et lui proposer de compléter le champ de texte s il commence à écrire le nom d un métier prédéfini. Un exemple simple est le suivant. $("#langages").autocomplete({ source: [ "c++", "java", "php", "coldfusion", "javascript", "asp", "ruby" ] }); Notez que dans l exemple ci-dessus, si on écrit un lettre dans l élément avec ID monid, l autocompletion va nous donner toutes les langages qui contiennent ce lettre. Donc en tapant «c», on va obtenir comme suggestions «coldfusion», «c++» et «javascript». Pour une liste d options complète, voir la documentation à : http://api.jqueryui.com/autocomplete/ Exercice 4: Modifiez le champs «métier» de votre formulaire pour qu il permet l autocomplétion. Pour avoir quelque chose d utile, definissez d abord 10 métiers dans un array source. 3 Web Storage Le Web Storage permet au navigateur de stocker des informations de façon locale, sans avoir à communiquer avec un quelconque serveur. Il s agit-là d une grande nouveauté, introduite par HTML5. En effet, jusqu alors, il était compliqué de stocker des informations complexes. L utilisation des cookies, par exemple, n était pas idéale : avec une taille limitée, ils n étaient pas adaptés au stockage local. La solution la plus pratique était de stocker ces données en ligne, grâce à des appels AJAX : pratique lourde en ressources! Désormais, le Web Storage met en place deux espaces de stockage. Le premier, Session Storage, est destiné à la mémorisation de données ayant une faible durée de vie : celles-ci seront supprimées à la fermeture du navigateur. Local Storage, quant à lui, bénéficie d une durée de vie plus longue (les données ne sont pas supprimées à la fermeture du navigateur et restent disponibles (théoriquement) pour toujours) et possède une portée étendue à toutes les pages d un même domaine. Au sein d un même site, on peut donc mettre en place un vrai espace de stockage. En plus, contrairement aux cookies, la limite de stockage est assez grande (au moins 5 Mb) et les informations ne sont jamais trasnférés vers le serveur. Comme tous les navigateurs ne supportent pas le nouvelles fonctionnalités d HTML5, la première chose à faire est de vérifier que le navigateur supporte le Web Storage : if(typeof(storage)!== "undefined") { // Code pour le Web Storage. } else { alert("désolé, mais le Web Storage n'est pas suppoté"); } Pour stocker nos données, on utilisera l objet localstorage pour le Local Storage et l objet sessionstorage pour le Session Storage. La syntaxe est la même pour les deux. Les méthodes «setitem()» and «getitem()» nous permettent respectivement de stocker et de récupérer le contenu de l objet. 5

Dans la première on spécifie le nom et la valeur de la donnée (.setitem("nom","valeur")), tandis que getitem nécessite seulement du nom (la syntaxe est.getitem("nom")). localstorage.setitem("ville", "Rovaniemi"); $("#mondiv").html(localstorage.getitem("ville")); Une syntaxe alternative pour stocker et récuperer les données sans utiliser setitem et getitem est la suivante : localstorage.nom = "valeur"; sessionstorage.ville = "Rovaniemi"; sessionstorage.nom = "Père Noel"; $("#mondiv").html(sessionstorage.nom + " habite à " + sessionstorage.ville); } Remarquez que les noms et les valeurs sont toujours stockés comme des chaînes de caractères. Exercice 5: Créez un compteur de visites d une page web. Vous devrez afficher le nombre de venues (c est-à-dire le nombre d actualisations de la page) de l utilisateur. Pensez à utiliser Number() pour convertir l objet en nombre. Le résultat est-il le même si on utilise localstorage ou sessionstorage? Exercice 6: À l aide d un formulaire, demandez à l utilisateur la première fois qu il entre dans votre site (et que la première fois), son titre de civilité, son prénom et son nom. Modifiez le message de l exercice précédente pour afficher aussi ces informations (en affichant, par exemple, Bonjour M. Matti Meikäläinen, vous avez visité cette page 42 fois. ). Même si en principe le Web Storage permet de stocker uniquement des chaînes de caractères, avec une petite astuce on peut mémoriser des objets entiers. Pour cela, nous allons utiliser la syntaxe JSON, en transformant des objets en chaîne de caractères, grâce à la méthode JSON.stringify(), pour après la ré-parser, grâce à JSON.parse(). // Construction d'un objet JSON var album = {} // Remplissage de l'objet album.artiste = 'Carola'; album.titre = 'I denna natt blir varlden ny'; album.annee = '2007'; album.chansons = [ { "titre" : "Stilla natt, heliga natt" }, { "titre" : "Lyss till anglasangens ord" }, { "titre" : "Glans over sjo och strand" }, { "titre" : "I denna natt blir varlden ny" } ]; // On place l'objet en mémoire en transformant le JSON en chaine de caracteres localstorage.album = JSON.stringify(album); // Pour le recuperer, on transforme la chaine en JSON var recupalbum = JSON.parse(localStorage.album); Exercice 7: (à rendre sur la plateforme avant le 8 décembre) En vous appuyant sur cette technique, vous allez créer une application web de «to-do list». 6

Les tâches à réaliser seront mémorisées dans le navigateur (en Local Storage) et listées sur la page, accompagnées d un formulaire permettant à l utilisateur d en ajouter. Commencez par créer un formulaire pour l ajout de tâche. Il sera composé du titre de la tâche, de la date à respecter pour sa réalisation (utilisez un datepicker), d une description plus complète (utilisez un <textarea>) et d un état d avancement (0-100%) (utilisez un <input> de type range). Traitez ce formulaire grâce à jquery. À la soumission de ce dernier, récupérez-en les valeurs pour les stocker dans le Local Storage, sous forme d objets JSON. Listez les tâches déjà ajoutées. Vous pourrez utiliser du CSS3 pour un rendu en forme de post-its, par exemple. Et pourquoi pas des animations au survol? Faites en sorte de pouvoir modifier l état d avancement d une tâche en cliquant sur un bouton. Une fois effectuée, son affichage devra être modifié (contenu barré? Changement de couleur?) Ajoutez un bouton pour chaque tâche à fin de la supprimer. 7