Programmation Internet



Documents pareils
Programmation Web. Madalina Croitoru IUT Montpellier

TP JAVASCRIPT OMI4 TP5 SRC

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

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

L3 informatique TP n o 2 : Les applications réseau

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

Document Object Model (DOM)

Architectures web/bases de données

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

Introduction à Expression Web 2

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

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

Les outils de création de sites web

Les sites Internet dynamiques. contact : Patrick VINCENT pvincent@erasme.org

Formation : WEbMaster

DOM - Document Object Model

Petite définition : Présentation :

Initiation à la programmation en Python

Application Web et J2EE

Gestion des documents avec ALFRESCO

Activité sur Meteor. Annexe 1 : notion de client-serveur et notion de base de données

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Séance d ED n 5 : HTML et JavaScript

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Automatisation d'une Facture 4. Liste Déroulante Remises Case à cocher Calculs

TP 1. Prise en main du langage Python

FAQ Trouvez des solutions aux problématiques techniques.

Formation > Développement > Internet > Réseaux > Matériel > Maintenance

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

Chapitre 2 Accès aux partages depuis votre système d'exploitation

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Manuel d'installation

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Autour du web. Une introduction technique Première partie : HTML. Georges-André SILBER Centre de recherche en informatique MINES ParisTech

Programmation Internet Cours 4

NAS 208 WebDAV Une alternative au protocole FTP pour le partage sécurisé des fichiers

Application de lecture de carte SESAM-Vitale Jeebop

Diffuser un contenu sur Internet : notions de base... 13

Le stockage local de données en HTML5

La programmation orientée objet Gestion de Connexions HTTP Manipulation de fichiers Transmission des données PHP/MySQL. Le langage PHP (2)

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Présentation du Framework BootstrapTwitter

L envoi d un formulaire par courriel. Configuration requise Mail Texte Mail HTML Check-list

4. SERVICES WEB REST 46

INTRODUCTION AU CMS MODX

Module BD et sites WEB

Les services usuels de l Internet

HTML. Notions générales

TABLEAU CROISE DYNAMIQUE

Création de formulaires interactifs

Introduction à MATLAB R

Groupe Eyrolles, 2003, ISBN : X

Paramétrage des navigateurs

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

AJAX. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

Publication dans le Back Office

Formulaire pour envoyer un mail

webmestre : conception de sites et administration de serveurs web 42 crédits Certificat professionnel CP09

Internet. DNS World Wide Web. Divers. Mécanismes de base Exécution d'applications sur le web. Proxy, fire-wall

Formation. Module WEB 4.1. Support de cours

Publier dans la Base Documentaire

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

Comment configurer votre navigateur pour Belfius Direct Net (Business)?

Cours 420-KEG-LG, Gestion de réseaux et support technique. Atelier No2 :

PARAMETRER LA MESSAGERIE SOUS THUNDERBIRD

ECLIPSE ET PDT (Php development tools)

PHP 5.4 Développez un site web dynamique et interactif

INCORPORER EXCEL EN LIGNE DANS UN FICHIER CRÉÉ AVEC L ÉDITEUR DE TEXTE 15 avril 2015

Manuel d'utilisation du navigateur WAP Palm

Internet : Naviguer en toute sérénité

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

Stockage du fichier dans une table mysql:

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

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

\ \ / \ / / \/ ~ \/ _ \\ \ ` \ Y ( <_> ) \ / /\ _ / \ / / \/ \/ \/ Team

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

Langage Java. Classe de première SI

Novell. NetWare 6. GUIDE D'ADMINISTRATION DE NETDRIVE

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

Pour les caméras IP de modèles : QSTC201 QSTC211. Surveillance à distance via Internet Guide de démarrage

Bureautique Initiation Excel-Powerpoint

Gilles.Roussel univ-mlv.fr HTTP/1.1 RFC 2068

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

Administration du site (Back Office)

Module http MMS AllMySMS.com Manuel d intégration

Présentation du langage et premières fonctions

NOS FORMATIONS EN BUREAUTIQUE

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

Gestion de stock pour un magasin

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Corrigé de l'atelier pratique du module 8 : Implémentation de la réplication

Content Switch ou routage de niveau HTTP

Utilisation de l éditeur.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Notes pour l utilisation d Expression Web

Transcription:

Programmation Internet Protocole HTTP DHTML Javascript Ivan Madjarov, MCF, IUT R&T, 2002 2011 Programmation Internet Partie I Protocole HTTP Ivan Madjarov, MCF, IUT R&T, 2002 2011

Le Protocole HTTP HTTP : HyperText Transfert Protocol protocole de rapatriement des documents protocole de soumission de formulaires Fonctionnement (HTTP/1.0) connexion demande (GET) d un document renvoi du document ou le code d une erreur Déconnexion Fonctionnement (HTTP/1.1) partage HTTP WebDAV (Web based Distributed Authoring and Versioning) Programmation Internet 3 Le Protocole HTTP Dialogue HTTP Méthode POST Programmation Internet 4

Le Protocole HTTP Format de la requête envoyé par le client au serveur <Méthode> <URI> HTTP/<Version> [<Champ d entête>: <Valeur>] [<tab><suite Valeur si >1024>] ligne blanche [corps de la requête pour la méthode POST] Programmation Internet 5 Le Protocole HTTP Méthodes de la requête GET : demande pour obtenir des informations et une zone de données concernant l URI HEAD : demande pour seulement obtenir des informations concernant l URI POST : envoie de données (contenu du formulaire vers le serveur, requête SOAP ) situées dans le corps. PUT : enregistrement du corps de la requête à l URI indiqué DELETE : suppression des données désignées par l URI Programmation Internet 6

Le Protocole HTTP Format de la réponse Réponse envoyé par le serveur au client HTTP/<Version> <Status> <Commentaire Status> Content-Type: <Type MIME du contenu> [< Champ d entête >: <Valeur>] [<tab><suite Valeur si >1024>] Ligne blanche Document Programmation Internet 7 Le Protocole HTTP En têtes Accept Accept Charset Accept Encoding Accept Language Authorization Content Encoding Content Language Content Length Content Type Date Forwarded From Link Orig URL Referer User Agent Type de contenu accepté par le browser (par exemple text/html) Jeu de caractères attendu par le browser Codage de données accepté par le browser Langage attendu par le browser (anglais par défaut) Identification du browser auprès du serveur Type de codage du corps de la requête Type de langage du corps de la requête Longueur du corps de la requête Type de contenu du corps de la requête (par exemple text/html). Date de début de transfert des données Utilisé par les machines intermédiaires entre le browser et le serveur Permet de spécifier l'adresse e mail du client Relation entre deux URL URL d'origine de la requête URL du lien à partir duquel la requête a été effectuée Chaîne donnant des informations sur le client, comme le nom et la version du navigateur, du système d'exploitation Programmation Internet 8

Programmation Internet Partie II Javascript Le script côté client Ivan Madjarov, MCF, IUT R&T, 2002 2011 DHTML XHTML dynamique Le DHTML n'est pas un standard! C est une appellation qui désigne un rassemblement de techniques. Le DHTML est une combinaison de feuilles de styles (CSS) des langages de scripts (JavaScript, JScript, VBScript, PHP) et d'objets (DOM). Programmation Internet 10

JavaScript Le langage Le modèle Client Serveur par rapport aux scripts et les langages interprétés 1. Côté Client: XHTM/CSS et JavaScript 2. Côté Serveur: PHP/ASP/JSP Programmation Internet 11 JavaScript Le langage JavaScript est un langage de programmation introduit dans le code XHTML (HTML). Le navigateur Web du côté client interprète le code XHTML et le script JavaScript. L'interprétation dépend du type de navigateur (IE, Firefox, Opera, Safari ou autre). JavaScript est un langage objet et événementiel. Le développeur peut créer des objets sur la page, avec des propriétés et des méthodes et leur associer des actions en fonction d'événements déclenchés par le client (passage de souris, clic, saisie clavier) Programmation Internet 12

JavaScript Intégrer Intégrer du code JavaScript dans une page XHTML dans le corps de la page <body>, ou dans la partie entête <head> <script language="javascript"> </script> dans un événement d'un objet de la page. onclick="alert('vous avez cliqué')" faire appel à un script quand l'utilisateur clique sur un lien: <A HREF="javascript:ma_fonction()">Cliquez ici</a> Depuis un fichier externe : <SCRIPT LANGUAGE = "Javascript" SRC="url/fichier.js"> </SCRIPT> Programmation Internet 13 JavaScript Intégrer <HTML> <HEAD> <TITLE> Voici une page contenant du Javascript </TITLE> </HEAD> <BODY> <SCRIPT language="javascript"> <! alert("voici un message d\'alerte!"); // > </SCRIPT> </BODY> </HTML> TEST Programmation Internet 14

JavaScript Fonctionner <HTML> <HEAD> <SCRIPT language="javascript"> <! function Chargement() { alert('bienvenue sur le site'); } // > </SCRIPT> </HEAD> <BODY onload="chargement();" > <p>texte HTML dans le corps de la page Web...</p> </BODY> </HTML> (Test) Programmation Internet 15 JavaScript Les Variables Instruction var pour la déclaration. Toute nouvelle variable doit être initialisée ce qui détermine son type. varprenom_visiteur = "Marcel"; // type string varnom_visiteur = "Dupond"; // type string varage_visiteur = 29; // type numérique Une variable déjà déclarée s'utilise ensuite comme d habitude : var accueil="bonjour " + prenom_visiteur + " " + nom_visiteur; // Concaténation directe Programmation Internet 16

JavaScript La notion d Objets Imaginez un arbre dans un jardin comportant une branche sur laquelle se trouve un nid. La hiérarchie d'objets est définie comme ceci : jardin arbre branche feuille nid largeur: 20 couleur: jaune hauteur: 4 Programmation Internet 17 JavaScript La notion d Objets Notation Le nid sur l'arbre est donc désigné comme suit : jardin.arbre.branche.nid Pour changer la couleur du nid : jardin.arbre.branche.nid.couleur = vert; Les objets du navigateur L'objet le plus grand est l'objet fenêtre (window) Dans la fenêtre s'affiche une page (document ) Cette page peut contenir plusieurs objets, comme des formulaires, des images, etc. window.document.title = "titre de la page web"; Programmation Internet 18

JavaScript Les Objets La déclaration se fait avec var. Pour créer un objet, il faut utiliser le mot clé new suivi du type d'objet. Le respect des majuscules/minuscule est obligatoire. var datejour = new Date(); var unedate = new Date(a, m, j, h, m, s); Cela correspond à la création d'un type objet et donne accès aux méthodes et propriétés prédéfinies var a = datejour.getday(); // le jour de la semaine (Txt) Programmation Internet 19 JavaScript Les Objets <HTML><HEAD> <TITLE> Voici une page contenant du Javascript</TITLE> </HEAD> <BODY> <SCRIPT language="javascript"> <! var T = new Array ( "dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi" ); var dj = new Date(); alert("le jour de la semaine est "+T[dj.getDay()]); // > </SCRIPT> </BODY></HTML> Programmation Internet 20

JavaScript Les Tableaux Un tableau, en Javascript, est une variable pouvant contenir plusieurs données indépendantes, indexées par un numéro, appelé indice, qui assure l'accès aux données. Indice 0 1 2 3 Données donnée 1 donnée 2 donnée 3 donnée 4 Tableaux associatifs indices personnalisés pour indexer les valeurs du tableau. Indice "Paul" "André" "Marie" "Jean" Données 1000 500 1200 4500 Programmation Internet 21 JavaScript Les Tableaux En JavaScript, les tableaux sont des objets: var T = new Array(10); Le premier élément est indexé à 0. Il est possible de déclarer un tableau sans dimension fixe. La taille du tableau s'adapte en fonction du contenu (taille variable). Pour accéder aux éléments du tableau: T[0] = 10; T[9] = 5; T[2] = "Toto"; Des propriétés associées à l'objet : T.length Retourne le nombre d'éléments de l'objet Array. Programmation Internet 22

JavaScript Les Fonctions Les fonctions et leurs instructions sont déclarées et codées dans l'entête de la page (<head>) et peuvent être appelées ensuite dans le corps de la page (<body>). function Nom (argument1, argument2,...) { liste d'instructions } Nom_De_La_Fonction(); Une variable déclarée dans la fonction (non précédée du mot clé var) sera globale et accessible après exécution de la fonction Une variable déclarée avec le mot clé var sera locale, accessible uniquement dans la fonction. Programmation Internet 23 JavaScript Les Instructions Le test conditionnel: if (condition) { } else { } Les boucles: For (initialisation; condition; opération) { // Vos instructions } while (condition) { // Les instructions de la boucle } Un commentaire : // commentaire sur une ligne /* des commentaires sur plusieurs lignes */ Programmation Internet 24

JavaScript Les Méthodes Une méthode est une fonction associée à un objet Appel d'une méthode: window.objet1.objet2.methode(); window étant l'objet de base du navigateur Exemple: une page HTML est composée d'un objet appelé document. A l'objet document est associée une méthode write(liste de paramètres). La méthode permet de modifier de façon dynamique le contenu de la page. window.document.write("bonjour"); (Test, Txt) La méthode writeln() ajoute un retour chariot à la fin. Programmation Internet 25 JavaScript L'Objet Le mot clé this Lorsqu'on fait appel à une fonction à partir d'un objet (formulaire), le mot clé this fait référence à l'objet en cours et se substitue à l'appel complet: window.objet1.objet2... ainsi lorsque l'on passe l'objet en cours en paramètre d'une fonction, il suffit de taper nom_de_la_fonction(this) pour pouvoir manipuler cet objet à partir de la fonction. Pour manipuler les propriétés de l'objet il suffira de taper this.propriete (où propriete représente le nom de la propriété). Programmation Internet 26

JavaScript Objets prédéfinis Les chaînes de caractères La déclaration var ch1="bonjour"; Les opérations: Concaténation: var chaine1="vive le "; var chaine2="javascript"; var chaine=chaine1+chaine2; La variable chaine contient après cette concaténation "Vive le JavaScript". Programmation Internet 27 JavaScript Les chaînes de caractères o La longueur d'une chaîne Une chaîne de caractères en JavaScript est un objet string sur lequel s'appliquent des propriétés et des méthodes La propriété length indique le nombre de caractères de la chaîne var chaine="azerty"; 6 < chaine.length o Récupérer le n ième caractère La méthode charat(n) récupère le caractère n : var chaine="azerty"; "z" < chaine.charat(1) Programmation Internet IvMad, 2005-2008 28

JavaScript Les chaînes de caractères MAJUSCULES / minuscules var chaine="ceci est un texte"; var maj=chaine.touppercase(); var min=chaine.tolowercase(); Une sous chaîne dans une chaîne var domaine = "www.javascript.com"; var extension = domaine.substring( domaine.lastindexof(".") ); substring extrait une souschaîne à partir de l'indice retournée par lastindexof qui retrouve la dernière occurrence de souschaine Programmation Internet IvMad, 2005-2008 29 Internet JavaScript L'objet String Programmation Internet IvMad, 2005-2008 30 Internet

JavaScript L'objet String Programmation Internet IvMad, 2005-2008 31 Internet JavaScript Conversions Les fonctions de conversion transformer une chaîne en un entier ou un réel: var chaîne = "3.14"; var entier = parseint(chaîne); var reel = parsefloat(chaîne); Est ce un nombre Pour détecter qu'une chaîne a le format d'un nombre, on applique la fonction isnan(valeur) qui renvoie : true si valeur n'est pas un nombre false si valeur est un nombre Programmation Internet IvMad, 2005-2008 32 Internet

JavaScript L'objet Math Utilisation: x = Math.propriété; x = Math.méthode(paramètre); Méthode/Param Valeur Méthode/param E constante d'euler sqrt() Racine carrée LN2 LN10 logarithme naturel de 2 logarithme naturel de 10 exp() max() valeur exponentielle le plus grand de deux chiffres PI constante PI min() le plus petit de deux chiffres abs() valeur positive pow() puissance exposant cos() cosinus random() 0 ou 1 aléatoire sin() sinus round() arrondi d'un nombre Programmation Internet IvMad, 2005-2008 33 Internet Javascript et les Maths La plupart des fonctions de base mathématiques sont des méthodes de l'objet Math: Math.abs(a) Math.round(a) Math.ceil(a) Math.floor(a) Math.sqrt(a) Math.log(a) Math.ln(a) Math.exp(a) Math.pow(a,b) Math.min(a,b) Math.max(a,b) Retourne la valeur absolue de a Retourne l'entier arrondi le plus proche de a Retourne l'entier immédiatement supérieur (ou égal) à a Retourne l'entier immédiatement inférieur (ou égal) à a Retourne la racine carrée de a Retourne le logarithme de a Retourne le logarithme népérien de a Retourne l'exponentielle de a Retourne a à la puissance b Retourne le plus petit des paramètres a ou b Retourne le plus grand des paramètres a ou b Programmation Internet 34

Un tableau HTML en JavaScript <SCRIPT language=javascript> document.write("<table border='1'><tr>"); for (var i=0; i<5; i++) { document.write("<td>"+ 10*(Math.random())+"</TD>"); } document.write("</tr></table>"); </SCRIPT> (Test) Ce script commence par initialiser la table. La boucle de 5 itérations crée 5 cellules de tableaux et affiche à l'intérieur un nombre aléatoire. Le script clôt la table en fermant la balise </TABLE> Programmation Internet 35 Javascript les boîtes de dialogue La méthode alert() permet d'afficher dans une boîte composée d'une fenêtre et d'un bouton OK un texte fournit en paramètre. Exemple. La méthode confirm() est similaire à la méthode alert(), si ce n'est qu'elle permet un choix entre "OK" et "Annuler". Lorsque l'utilisateur appuie sur "OK" la méthode renvoie la valeur true. Elle renvoie false dans le cas contraire... Exemple. Programmation Internet 36

Javascript les boîtes de dialogue La méthode prompt() La méthode prompt fournit un moyen simple de récupérer une information provenant de l'utilisateur. La méthode prompt() requiert deux arguments : le texte d'invite Le texte par défaut dans le champ de saisie Programmation Internet 37 Javascript Formulaires Les éléments de formulaire sont des objets JavaScript. Soit le formulaire XHTML: <FORM name="general > <INPUT type="text" name="champ1" value="valeur initiale"> </FORM> Accéder au formulaire: Le formulaire est un élément de l'objet document document.forms["general"] document.forms[0] document.general forms est le tableau des formulaires de document Programmation Internet 38

Javascript Formulaires Accéder à un élément: document.forms["general"].elements["champ1"] document.forms["general"].elements[0] document.forms["general"].champ1 "elements" est le tableau de tous les éléments du formulaire. On peut accéder à un élément par : son nom, son indice, son nom. Utilisez le nom des éléments, plutôt que les indices. Les noms sont indépendants du formulaire. Programmation Internet 39 Javascript Manipuler des Formulaires Manipuler les propriétés d'un élément Pour placer dans la zone de texte le mot "NOUVEAU", il faut juste écrire : document.forms["general"].elements["champ1"].value = "NOUVEAU" Appeler une méthode sur un élément Pour donner le focus à un champ texte il faut appeler la méthode focus() sur cet élément. document.forms["general"].elements["champ1"].focus() Programmation Internet 40

Formulaires onclick Intégrer du JavaScript dans un événement L'événement le plus classique est le clic sur un bouton appelé onclick <FORM name="changer"> <INPUT type="text" name="zonetexte" value="valeur initiale"><br/> <INPUT type="button" value="changer la zone de texte" onclick = ' document.forms["changer"].elements["zonetexte"].value = "NOUVEAU" '> </FORM> [Exécuter] Programmation Internet 41 Formulaires alert Au bouton l'événement onclick est rajouté qui reçoit le code JavaScript à exécuter lors du clic sur le bouton. Le code JavaScript doit se mettre entre " ou entre '. Il faut faire très attention de les alterner correctement! onclick='alert("bonjour")'> ou onclick="alert('bonjour')"> Programmation Internet 42

Formulaires this L'objet this représente l'objet JavaScript en cours. <FORM> <INPUT type="text" name="zonedetexte" value="valeur initiale"> <INPUT type="button" value="changer le contenu" onclick=' this.form.zonedetexte.value="nouveau" '> </FORM> Programmation Internet 43 Formulaires input Les zones de texte <input> La principale action sur une zone de texte est de manipuler son contenu. Un formulaire "monform" possède un champ texte "monchamp". On accède au contenu du champ par : document.forms["monform"].elements["monchamp"].value Il faut ajouter la propriété.value pour accéder au contenu du champ! Alors il faut penser aux opérations sur les chaînes de caractères. Programmation Internet 44

Formulaires Les cases à cocher Détecter une case cochée. On utilise la propriété checked qui est de type booléen (true / false) pour vrai ou faux. <FORM> <INPUT type="checkbox" name="majeur">enseignant <INPUT type="checkbox" name="etudiant">etudiant <INPUT type="button" value="tester" onclick="alert(' Enseignant : ' +this.form.majeur.checked+ '\netudiant : ' +this.form.etudiant.checked);"> </FORM> Programmation Internet 45 Formulaires Les radio boutons La gestion des radio boutons est assez complexe. <FORM> <INPUT type="radio" name="os" value="windows 95" checked>windows 95 <INPUT type="radio" name="os" value="windows 98">Windows 98 <INPUT type="radio" name="os" value="windows NT">Windows NT <INPUT type="radio" name="os" value="linux">linux <INPUT type="radio" name="os" value="autre">autre <INPUT type="button" value="tester" onclick="testerradio(this.form.os)"> <SCRIPT language="javascript"> function testerradio(radio) { for (var i=0; i<radio.length; i++) { if (radio[i].checked) { alert("système = "+radio[i].value) } } } </SCRIPT> Un groupe de radio boutons liés est créé sous le nom de 'os'. La fonction a comme paramètre le groupe des radio boutons. On repère en boucle la propriété checked à true et on affiche la valeur correspondante. Programmation Internet 46

Formulaires Les radio boutons Programmation Internet 47 Formulaires SELECT La structure d'un élément de type SELECT (voir Tableau) Pour récupérer l'indice la ligne sélectionnée : this.form.elements['liste'].selectedindex Pour récupérer le nombre de lignes : this.form.elements['liste'].options.length Pour récupérer la valeur de la ligne sélectionnée: this.form.elements['liste'].options[this.for m.elements['liste'].selectedindex].value Nom selectedin dex options length value text Nom de la liste Indice de la ligne sélectionnée (ligne 1 : indice=0) Tableau des lignes Nombre de lignes Valeur d'une ligne Libellé d'une ligne Programmation Internet 48

Formulaires TEXTAREA Une zone de texte multi lignes a comme propriété principale.value qui contient le texte de la zone. Pour récupérer le contenu: document.forms["nom"].elements["zone"].value Programmation Internet 49 Javascript Les événements Les évènements sont des actions de l'utilisateur, qui donnent lieu à une interactivité. Ainsi, il est possible d'associer des fonctions, des méthodes à des événements: le passage de la souris au dessus d'une zone, le changement d'une valeur, Les gestionnaires d'événements permettent d'associer une action à un événement. onevenement="action_javascript_ou_fonction() "; Les gestionnaires d'événements sont associés à des objets Programmation Internet 50

Javascript Liste des événements Programmation Internet 51 Javascript Liste des événements Chaque événement ne peut pas être associé à n'importe quel objet... il est évident qu'un événement OnChange ne peut pas s'appliquer à un lien hypertexte par exemple,... Objets auxquels on peut associer des événements: Programmation Internet 52

Javascript et les Maths Générer un nombre aléatoire entier entre 1 et N: function aleatoire(n) { return (Math.floor((N)*Math.random()+1)); } Convertisseur Euros Francs: <FORM> <INPUT type="text" name="franc" size=10 onblur="convf(this.form)" value="0"> FF <INPUT type="button" value="< Convertir > "> <INPUT type="text" name="euro" size=10" onblur="conve(this.form)" value="0"> Euros </FORM> Programmation Internet 53 Javascript et les Maths <SCRIPT LANGUAGE="JavaScript"> var taux=6.55957; function convf(f) { var E=Math.round(100*parseFloat(f.franc.value)/taux)/100; if (isnan(e)) { alert("montant incorrect"); f.franc.focus(); } else { f.euro.value=e; } } function conve(f) { var F=Math.round(100*parseFloat(f.euro.value)*taux)/100; if (isnan(f)) { alert("montant incorrect"); f.euro.focus(); } else { f.franc.value=f; } } </SCRIPT> Programmation Internet 54

Formulaires Un exemple <html><head><title>exercice 1.5</title> <script language="javascript"> function controle(form1) { var inpt = document.form1.input.value; var tsts = parsefloat(inpt); alert(inpt+" usd = "+(tsts*0.758)+" eur"); } </script></head> <body> <form name="form1"> <p>donnez une somme en USD :<br /> <INPUT TYPE="text" NAME="input" VALUE="0"><BR /> <INPUT TYPE="button" NAME="bouton" VALUE="Echanger" onclick="controle(form1)"></p> </FORM></BODY></HTML> Programmation Internet 55 Formulaires Contrôler la saisie Un nombre: Il peut être utile de vérifier que la saisie dans un champ de formulaire est bien un nombre : saisie de quantités, de prix... Soit nb le champ à tester. Si!(isNaN(nb)) retourne true, alors nb est un nombre. <SCRIPT language="javascript"> function CheckNombre(nb) { // retourne true si c'est un nombre et false sinon return!(isnan(nb)); } </SCRIPT> Programmation Internet 56

Formulaires Contrôler la saisie Un mail Pour vérifier qu'un mail est valide, il suffit de tester la présence de @ et du point. function verifiermail(mail) { if ((mail.indexof("@")>=0)&&(mail.indexof(".")>=0)) { return true; } else { alert("mail invalide!"); return false; } } La fonction retourne true sinon, elle affiche un message et retourne false. Programmation Internet 57 Formulaires Contrôler la saisie Valider un formulaire par JavaScript : Il est souvent utile de vérifier la saisie d'un formulaire avant de le valider. L'idéal est de créer un bouton (de type "button" et pas "submit") qui appelle une fonction JavaScript qui contrôle la saisie et soumet ou non le formulaire. <FORM name="form4" action="form.php" method="post"> <INPUT type="texte" name="mail"> Adresse mail<br /> <INPUT type="button" name="bouton" value="valider" onclick="validermail(this.form)"> </FORM> Programmation Internet 58

Formulaires Contrôler la saisie <SCRIPT language="javascript"> function ValiderMail(formulaire) { if (formulaire.mail.value.indexof("@",0)<0) { alert("adresse mail saisie invalide.\nle formulaire pas valide.")} else { alert("formulaire validé"); // Pour valider le formulaire en JavaScript : formulaire.submit() // envoyé par la méthode POST } // au fichier form.php sur serveur } </SCRIPT> Programmation Internet 59 Les pop ups Le mot popup peut être traduit par fenêtre surgissante. L'événement est déclenchée par l'utilisateur (clic, ouverture de site, minuterie,...) via un code JavaScript. L'objet window possède la méthode open qui attend 3 paramètres chaînes de caractères : window.open( page [,nom] [,options] ) page contient l'adresse de la page à afficher. nom du popup qui va être ouvert. options paramétrage du popup. Programmation Internet 60

Les pop ups 'page' et 'nom' Pour ouvrir un popup sur un lien, voici la syntaxe HTML : <A href = "javascript:popup('popup.html')"> Ouverture popup basique</a> Déclaration la fonction popup() : <SCRIPT language="javascript"> function popup(page) { window.open(page); } </SCRIPT> Programmation Internet 61 Les pop ups 'options' La chaîne d'options d'affichage: Aucune barre de menu, taille fixe : OuvrirPopup('popup.html', '', 'resizable=no, location=no, width=200, height=100, menubar=no, status=no, scrollbars=no, menubar=no') Programmation Internet 62

Les pop ups 'options' Voici la fonction JavaScript qui ouvre un popup pour tous ces exemples : <SCRIPT language="javascript"> function OuvrirPopup(page,nom,option) { window.open(page,nom,option); } </SCRIPT> Programmation Internet 63 Les pop ups 'options' Ouverture d'une fenêtre popup en fonction <script LANGUAGE="JavaScript"> <! function ShowWindow(cURL) { var ControlWindow; ControlWindow = window.open(curl, "RFC", "status, height=480, width=640, status=no, scrollbars=yes, resizable=yes, toolbar=0"); if (parseint(navigator.appversion) >= 3) { ControlWindow.focus(); } } // > [Test] </script> Programmation Internet 64

JavaScript et les cookies Un cookie permet de stocker des informations sur le poste client: Le nombre de visites, La date de la dernière visite, Un identifiant et un mot de passe pour une reconnaissance automatique, Une liste de mots clés utilisés dans les moteurs de recherche pour cibler les publicités à afficher, Une liste de paramètres de préférences de navigation pour personnaliser la page présentée. Programmation Internet 65 JavaScript et les frames Pour créer une page séparée en plusieurs frames, il faut à l'origine une page HTML: <HTML> <HEAD><TITLE>Titre de page</title></head> <FRAMESET cols="140,*"> <FRAMESET rows="*,50" frameborder=0> <FRAME name="frame1" src="frame1.html"> <FRAME name="frame2" src="frame2.html"> </FRAMESET> <FRAME name="frame3" src="frame3.html"> </FRAMESET> </HTML> Programmation Internet 66

JavaScript et les frames Programmation Internet 67 JavaScript et les frames Programmation Internet 68

JavaScript et les frames Programmation Internet 69 JavaScript et les frames Programmation Internet 70

JavaScript et les frames Cadre 1 contient le menu <HTML><HEAD><TITLE>Frame 1</TITLE><script language="javascript"> function charger(page1, page2) { parent.frames["frame2"].window.location=page1; parent.frames["frame3"].window.location=page2; }</script></head><body><p>page : 1</P> <p><a HREF = "JavaScript:charger('frame2.html', 'frame3.html')"> Menu </A></p> <p><a HREF = "JavaScript:charger('frame5.html', 'frame4.html')"> JavaScript</A></p> <p><a HREF = "JavaScript:charger('frame6.html', 'frame7.html')"> Java </A></p> <p><a HREF = "JavaScript:charger('frame8.html',' frame9.html')">python </A></p> </body></html> Programmation Internet 71 JavaScript et les frames Cadre 2 contient le logo <HTML> <HEAD> <TITLE>Frame 5</TITLE> </HEAD> <body> <p>page: 2<br /> <img src="javascript_toplogo.gif" alt="javascript" width="107" height="114"> </P> </body> </HTML> Programmation Internet 72

JavaScript et les frames Cadre 3 contient le texte: <HTML> <HEAD> <TITLE>Frame 4</TITLE> </HEAD> <body> <h1>page: 3</h1> <h2>javascript</h2> <p>javascript est un langage de programmation complètement lié au langage HTML. Le développeur internet code ses pages HTML en y intégrant des sources JavaScript. Le visiteur, par l'intermédiaire de son navigateur, charge le code des pages.</p><p> </p> </body> </HTML> Programmation Internet 73 JavaScript et les cookies Un cookie est un fichier de texte qui contient une chaîne de caractères avec des informations concaténées: SetCookie (name, value) { var argv = SetCookie.arguments; var argc = SetCookie.argum ents.length; var expires = (argc > 2)? argv[2] : null; var path = (argc > 3)? argv[3] : null; var domain = (argc > 4)? argv[4] : null; var secure = (argc > 5)? argv[5] : false; document.cookie = name+"="+escape(value)+ ((expires==null)? "" : ("; expires="+expires.togmtstring()))+ ((path==null)? "" : ("; path="+path))+ ((domain==null)? "" : ("; domain="+domain))+ ((secure==true)? "; secure" : ""); } Programmation Internet 74

Programmation Internet Partie III DHTML (Dynamic Hypertext Markup Language) Ivan Madjarov, MCF, IUT R&T, 2002 2011 Le DHTML La manipulation de ces éléments porte sur leur position, leur dimension, leur visibilité et leur style d'affichage (police, attributs de police, couleurs). Le mot dynamique de DHTML signifie que les modifications peuvent se faire une fois que la page a fini de se charger, ce que ne permet pas le HTML classique. En HTML pur, une fois la page chargée et affichée, il n'est plus possible d'afficher de nouveaux éléments ou de les déplacer. Programmation Internet 76

Le DHTML Le problème de la page figée a agacé pas un Webmaster! La solution récente appartient à la technique AJAX et s'intègre parfaitement dans le DHTML. Il s'agit de renouveler des parties d'une page sans pour cela recharger la page entière du serveur. Il existent deux moyens: synchrone et asynchrone en se servant de la fonction XMLHTTPRequest de JavaScript. Programmation Internet 77 Le DHTML AJAX: Exécuter des requêtes sur un serveur en temps réel et de manière synchrone ou asynchrone. Mettre à jour des informations sur une page HTML sans recharger pour cela toute la page. Ajouter des informations en fonction de paramètres ou événements sur une page. Exécuter des applications distantes, i.e. Services Web. Programmation Internet 78

Le DHTML objets En HTML les images, les liens, les formulaires, etc. sont des objets que JavaScript peut déjà manipuler. DHTML introduit la notion de calque ou couche ou layer. Ces calques sont à la base du DHTML car ils vont pouvoir être manipulés : déplacés, cachés, modifiés, redessinés Un calque est défini par le couple de balises <DIV> et </DIV> Programmation Internet 79 Le DHTML calques Un calque doit posséder : un identifiant, pour le repérer, un style d'affichage, pour indiquer sa position, sa taille, sa couleur, etc un contenu, qui sera affiché <DIV id="moncalque" style="position:absolute; top:200px; left:100px; visibility:hidden; background-color:yellow"> Ceci est un calque </DIV> Un objet calque est retourné par la fonction document.getelementbyid de JavaScript. Programmation Internet 80

Le DHTML calques Manipuler la visibilité et la position. Faire apparaître le calque: document.getelementbyid("mcalque").style.visibility="visible"; Faire disparaître le calque: document.getelementbyid("mcalque").style.visibility="hidden"; Pour déplacer le calque: document.getelementbyid("mcalque").style.left=500; document.getelementbyid("mcalque").style.top=parseint(document.g etelementbyid("mcalque").style.top)+10; - Manipulations sur le style: couleur de fond, de texte, de police, etc. Programmation Internet 81 Le DHTML les navigateurs A cause des incompatibilités entre navigateurs, il est indispensable de savoir reconnaître les bons! Pour cela il suffit de tester si la fonction getelementbyid est reconnue : if (document.getelementbyid) { alert("navigateur qui supporte DHTML officiel"); } Pour reconnaitre les anciens navigateurs! if ((!document.layers)&&(!document.all)&&(!document.getelementbyid)) { // Navigateur trop ancien! } Programmation Internet 82