CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages...

77
Création de pages Web Dynamiques Luc Brun Cr ´ eation de pages Web Dynamiques – p.1/75

Transcript of CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages...

Page 1: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Création de pages WebDynamiques

Luc Brun

Creation de pages Web Dynamiques – p.1/75

Page 2: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Place du HTML

GET http://www.monssite.com

HTTP 1.0

.....<html>

Content−type: text/html

Creation de pages Web Dynamiques – p.2/75

Page 3: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Place du HTML

GET http://www.monssite.com

HTTP 1.0

.....<html>

Content−type: text/html

CGI

Creation de pages Web Dynamiques – p.2/75

Page 4: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Place du HTML

php asp

GET http://www.monssite.com

HTTP 1.0

CGIpython ....

CSSJavaScript

HTML

Creation de pages Web Dynamiques – p.2/75

Page 5: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Intérêt du Cours

php asp python ....

CSSHTML

JavaScript

Creation de pages Web Dynamiques – p.3/75

Page 6: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

HTML

Langage à balises : <b>toto< /b>→toto engras.Forte parenté avec XML (HTML+XML→XHTML) :

Toute balise ouverte doit être fermée,Une balise ne délimitant rien se ferme ellemême (exemple : <br/ >)

Creation de pages Web Dynamiques – p.4/75

Page 7: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Structure d’un document HTML

Deux sections :head : Définitions générales sur le document :Informations non affichées,body : corps du document.

textes,tableaux,listes (à puce, numérotées),images. . .

Creation de pages Web Dynamiques – p.5/75

Page 8: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

La section head

<head>

<title>Un exemple de section head</title>

<link rel="stylesheet" type="text/css"

href="mon_css.css"/>

<meta http-equiv="Content-Type"

content="text/html; charset=ISO-8859-1"/>

<meta name="keywords" content="html,head"/>

<meta name="author" content="Luc Brun"/>

<meta name="description"

content="description de la section head"/>

</head>

Creation de pages Web Dynamiques – p.6/75

Page 9: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les textes

Jeu de caractère par défaut : ASCII. Codagedes accents par des séquences de caractères(é ↔ &eacute ;) (Cf. Tab.2.1)langage non wyswig ⇒ (blanc : &nbsp ; retourà la ligne : <br/ >).

Éviter de coder la miseen forme dans la structure dutexte.

Creation de pages Web Dynamiques – p.7/75

Page 10: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Modification de polices

Explicite :<b> : gras ;<i> : italique<u> : souligné

Logique :<big>, <small> : tailles,<strong>, <em>(emphase) : mise enévidence.

Creation de pages Web Dynamiques – p.8/75

Page 11: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Titres, lignes

Titres : <hx> avec x ∈ {1, . . . , 6}<h1> titre de niveau 1,<h6> titre de niveau 6,

Lignes horizontales : <hr/ >

Creation de pages Web Dynamiques – p.9/75

Page 12: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Paragraphes

Balise <p> avec comme principal attributalign∈ {left, center, right}.

Utilisez des pagraphes plutôt que des sauts delignes (<br/ >).

Creation de pages Web Dynamiques – p.10/75

Page 13: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Divisions

Balise <div> permet de regrouper un ensemblede textes/balises. Permet d’affecter despropriétés à un ensemble de balises :<div align="right">

<p>un premier paragraphe</p><p> et un second</p><p>tous align&eacute;s&agrave; droite</p>

</div>

Tous alignés à droite : Concept d’héritage.

Creation de pages Web Dynamiques – p.11/75

Page 14: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les listes

liste non numérotées (balise<ul>) ounumérotées (balise<ol>) :

item : <li>contenu< /li>type : type de liste (tables 2.2 et 2.3)

liste de description : balise <dl> (descriptionlist)

titre item <dt></dt>description de l’item <dd></dd>

Creation de pages Web Dynamiques – p.12/75

Page 15: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les tableaux

Trois balises :table : délimite une table,tr : délimite une ligne,td : délimite une cellule.

Possibilités de cellules multi-lignes, multi-colonnes, de sélection de fond de tables, delignes, de cellules. Tables de taille fixes/variables.

Creation de pages Web Dynamiques – p.13/75

Page 16: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les liens

Change l’url de la page.<a href="url"> lien</a> affiche lien etchange l’url courante pour celle spécifiée lorsd’un clic sur le texte. L’url peut être un lien vers :

un serveur : www.ismra.frune page www.ismra.fr/annuaire.htmlune application CGI www.ismra.fr/toto.cgi (voirplus loin)une adresse mail : mailto :[email protected]

La zone délimitée par <a></a> peut être dutexte, une image. . .

Creation de pages Web Dynamiques – p.14/75

Page 17: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les ancres

Permet de positionner une marque (une ancre)dans une page HTML. Des liens peuvent êtrepositionnés sur cette ancre.Syntaxe :<a href="identifiant"/>Liens sur l’ancre :<a href="page.html#identifiant">Lien</a>

Creation de pages Web Dynamiques – p.15/75

Page 18: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les images

Inclus une image : Syntaxe :<img src="logo_ensicaen.jpg"width="2cm" height="3cm"align="left" hspace="5mm"alt="Logo de L EnsiCaen"/>

Possibilité de spécifier la largeur (width), hau-teur(height), l’alignement, l’espacement (hspace,vspace), la bordure (border) et le texte avant char-gement (alt) (Cf. Tab. 2.6).

Creation de pages Web Dynamiques – p.16/75

Page 19: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les images clicables (1/2)

Permet de spécifier un lien sur certaines partiesd’une image. Syntaxe :<map name="id map"><area shape="nom forme"coords="liste coords" href="lien"/>..</map>

shape∈ {rect, circle, polygon}

Creation de pages Web Dynamiques – p.17/75

Page 20: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les images clicables (2/2)

Valeurs de coords :rect (x1, y1, x2, y2) coins haut et bas,circle (x, y, R),polygon (x1, y1, . . . , xn, yn) liste des points dupolygone.

Utilisation :<img src="url" usemap="id map"/>

Creation de pages Web Dynamiques – p.18/75

Page 21: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les cadres

Découpe la fenêtre du navigateur en sousfenêtres (frames).Exemple :<frameset cols="200,*"><frame src="menu.html" name="menu"/><frame src="main.html" name="main"/></frameset>Liens dans les frames :<a href="loisirs.html" target="main">Mes loisirs</a>

De moins en moins utilisé.Creation de pages Web Dynamiques – p.19/75

Page 22: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les formulaires

Permet à l’utilisateur de rentrer des informationspar le biais de balises spécifiques. Troisattributs :

action : nom du CGI ou de programme devanttraiter les informations,method : méthode de passage desparamètres (GET ou POST)enctype : codage du document.

Creation de pages Web Dynamiques – p.20/75

Page 23: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les balises input

<input type="type" name="nom">

type : type d’inputname : nom de variablevalue : valeur par défautchecked : sélection par défautsize : nb de caractèresmaxlength : nb max. de caractères

type∈ {text, password, image, checkbox, radio,submit, reset}

Creation de pages Web Dynamiques – p.21/75

Page 24: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

La balise select

Code un menu à options :Syntaxe :<select name="un_menu">

<option> 1er choix.</option><option> 2eme choix.</option>

</select>

Attributs : name, size (nb d’éléments simultané-ments affichés), multiple (sélection de plusieurséléments).

Creation de pages Web Dynamiques – p.22/75

Page 25: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

La balise textarea

Saisie d’une zone de texte.Syntaxe :<textarea name="saison"rows="10" cols="40">L’hivers :L’ete :</textarea>

Attributs : name, rows (nb ligne), cols (nb co-lonnes)

Creation de pages Web Dynamiques – p.23/75

Page 26: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les CSS

Cascading Style Sheets : Permet de modifierl’apparence de balisesPermet une claire différenciation entre :

le contenu,la structure,la présentation.

Fondamental !

Creation de pages Web Dynamiques – p.24/75

Page 27: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Feuille de style

Feuille de style : ensemble de règles spécifiant lamise en forme de certaines balises.Structure d’une règle :

h1 { color : red ; }

?sélecteur ?déclaration

6 6propriété valeur

Creation de pages Web Dynamiques – p.25/75

Page 28: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les sélecteurs

Spécifie la ou les balises qui vont utiliser lesdéclarations.Sélecteur simple : nom de balise.h1{

color: red;font-weight: bold;font-size: xx-large;text-align: center;

}

Creation de pages Web Dynamiques – p.26/75

Page 29: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les sélecteurs à évènements

Les déclarations s’appliquent sur un type debalise lors de certains évènements ou état.Exemple :a :hover {color : red; }

Principaux évènements ::focus prise de focus par un

texinput ou textarea:hover passage de la souris

sur un lien:link lien pas encore visité:visited lien cliqué

Creation de pages Web Dynamiques – p.27/75

Page 30: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les différents types de sélecteurs

simple : a{ } ,à évènement : a:hover { } ,contextuel : p a{ } ,groupés : a,p,h1 { }de classe : .intro { }d’identifiant : #titre { }

Voir pages HTML

Creation de pages Web Dynamiques – p.28/75

Page 31: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Liaison HTML-CSS

Les feuilles internes<head><style type="text/css"><!--p { text-align: justify; }--!></style></head>

Les balises <!- -!> permettent aux vieux na-vigateurs d’ignorer les feuilles de style.

Creation de pages Web Dynamiques – p.29/75

Page 32: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Liaison HTML-CSS

Les feuilles internes<head><link rel="stylesheet"type="text/css" href="ma_feuille.css"/></head>ou<head><style type="text/css">@import url("feuille.css")</style></head>

S’utilise en complément des feuilles externes.

Creation de pages Web Dynamiques – p.30/75

Page 33: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Liaison HTML-CSS

Les feuilles locales<body><p style="text-align: justify;color: red;"> Mon paragraphe</p></body>

Permet de rajouter localement une déclaration.

Creation de pages Web Dynamiques – p.31/75

Page 34: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Liaison HTML-CSS

Les feuilles utilisateurL’utilisateur peut imposer des styles pour cer-taines balises (générallement menu préférences).Utile pour les mal voyants.

Creation de pages Web Dynamiques – p.32/75

Page 35: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les feuilles en cascades

Conflits entre plusieurs règles :La dernière règlelue a la priorité1. Utilisateur,

2. locales,

3. internes/externes : dernière règle lue(positionnement de balises),

4. conflit dans une même feuille : dernière règlelue.

Creation de pages Web Dynamiques – p.33/75

Page 36: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Héritage

Document HTML→ arbre d’inclusion. Lesdéclarations s’héritent de père en fils.<html><head>

<title> ma page</title>

</head><body>

<h1> Ma page </h1>

<div class="menu">

<ul>

<li> un item</li></ul>

</div></body></html>

<title>

<head>

<h1>

<li>

<ul>

<div>

<body>

<html>

Creation de pages Web Dynamiques – p.34/75

Page 37: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les tailles

Tailles de boîtes, de polices, d’images. . .Unités absolues :

mm minimètrescm centimètresin inches

pc pica (1pica=12pt)pt pointspx pixel

Unité relative : %font-size : 50% : dernière taille de police,width : 10% : largeur de la boîte englobante(ex fenêtre)

Creation de pages Web Dynamiques – p.35/75

Page 38: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Tailles de polices

Unités relativesxx-large largex-large largelarge largemedium normalsmall small

x-small + small

xx-small encore + small

em 1em taille de la police précédente

Creation de pages Web Dynamiques – p.36/75

Page 39: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les couleurs

propriété concernées (color, background).Spécification du nom (aqua, black. . .) VoirTable 3.5Spécification de la valeur (R,G,B) par #rgbavec r, g, b ∈ [0, f ].

Creation de pages Web Dynamiques – p.37/75

Page 40: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Alignement de texte

text-indent Indentation de paragraphe.text-align justify, align,left,right et

nonemargin-left marge à gauchemargin-right marge à droitemargin-top marge du hautmargin-bottom marge du basmargin top right bottom left

Creation de pages Web Dynamiques – p.38/75

Page 41: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Formatage de boîtes

marginpadding

border

border : border-width, border-style,border-color ou border width, style color.padding : haut droite bas gauche.margin : idem que précédemment.

voir page HTML

Creation de pages Web Dynamiques – p.39/75

Page 42: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Positionnement de boîtes

propriétés impliqués : position, left, top, right,bottom.Valeurs de position :

static : par défaut (les uns sous les autres),absolute : coordonnées fenêtres,fixed : idem absolute, insensible au scroll,relative : positionnement relatif.

Voir page HTML

Creation de pages Web Dynamiques – p.40/75

Page 43: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Boîtes flottantes

Alignement à gauche (float : left ;) ou à droite(float :right ;) du bloc parent.Voir page Web.

Creation de pages Web Dynamiques – p.41/75

Page 44: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Gestion de la profondeur

propriété position⇒ possibilité de Recouvrement.

Gestion des recouvrements : propriété z-index.

En cas de recouvrement la boîte de z-index leplus élevé est affichée.

Creation de pages Web Dynamiques – p.42/75

Page 45: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les listes

Essentiellement trois propriétés :

1. list-style-type : type de liste que l’oncompte manipuler (disc, circle, decimal. . .)

2. list-style-image : spécifie une image àla place des puces

ul {list-style-image: url(mon_item.jpg);list-style-type: circle;}

3. list-style-position∈ {inside,outside}

Creation de pages Web Dynamiques – p.43/75

Page 46: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

JavaScript

Avantage :Exécuté sur le navigateur du client

Inconvénients :Exécuté sur le navigateur du clientVarie beaucoup en fonction des navigateursdes versions

Surtout utilisé pour de petits effets (appari-tion/disparition/déplacement de blocs) et la véri-fication des formulaires.

Creation de pages Web Dynamiques – p.44/75

Page 47: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Variables

Déclaration explicite de variable : var i.Si en dehors de fonction : variable globale,sinon variable locale.

Déclaration implicite toto="titi"; :variable globale.

Creation de pages Web Dynamiques – p.45/75

Page 48: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

L’instruction if

if (condition) {instruction} ouif (condition) {instruction} else{instruction}

On peut étendre à : if (condition)

{instruction} else if (condition)

{instruction}. . .

Creation de pages Web Dynamiques – p.46/75

Page 49: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

L’instruction switch

switch (val) {

case ’val1’:

instruction1

break;

case val2:

instruction2

break;

. . .

default:

instruction par defaut.

break;

}

Instruction 1 est exécutési val=val1, Instruction 2 sival=val2. . ..Si aucun test n’est vrai lebloc d’instruction par dé-faut est exécuté.

Creation de pages Web Dynamiques – p.47/75

Page 50: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les boucles (1/4)

Boucle for : for(init;cond;incr)exemplevar sum=0;for(i=0;i<10<i++)sum+=i;

Creation de pages Web Dynamiques – p.48/75

Page 51: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les boucles (2/4)

Boucle While :while(cond){instruction}exemple :sum=0;i=0;while(i<10){

sum+=i;i++;

}

Creation de pages Web Dynamiques – p.49/75

Page 52: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les boucles (3/4)

Boucle Do-while :do {instruction} while(cond);exemple :sum=0;i=0;do{

sum+=i;i++;

}while(i<10);

Creation de pages Web Dynamiques – p.50/75

Page 53: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les boucles (4/4)

Les séquences d’échapementreturn : sort de la boucle et de la

fonction.break : sort de la bouclecontinue : passe à l’itération suivante

Creation de pages Web Dynamiques – p.51/75

Page 54: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les tableaux

var tab_vide=new Array();var tab_10 =new Array(10);var tab_init=new Array(’val1’,’val2’);Tableaux 5 × 5 :var mat=new Array(5);var i,j;for(i=0;i<mat.length;i++)

mat[i]=new Array(5);Tableau associatif :tab[’email’]="[email protected]";

Creation de pages Web Dynamiques – p.52/75

Page 55: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Manipulation de tableaux (1/2)

Concat concaténe plusieurs ta-bleaux.

Tableau.join() conversion en chaîneTableau.pop() supprime dernier élémentTableau.push ajoute un ou plusieurs élé-

mentsTableau.reverse() inverse l’ordre des élé-

ments du tableau.Tableau.shift() supprime le premier élé-

ment du tableau.Creation de pages Web Dynamiques – p.53/75

Page 56: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Manipulation de tableaux (2/2)

Tableau.slice() partie d’un tableau.Tableau.sort() trieTableau.unshift ajoute en tête de tableauTableau.toString() concatène les objets de

l’array en une String.Tableau.valueOf retourne la valeur de l’objet

Array .Tableau.splice(i,nb,[val1,]) substitue leséléments en position i à i+nb du tableau par lesvali. Renvoi les éléments supprimés.

Creation de pages Web Dynamiques – p.54/75

Page 57: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les fonctions

function nom(parametres){instructions[return valeur]}

Passage des arguments par valeur,Return non obligatoire (procédure)

Creation de pages Web Dynamiques – p.55/75

Page 58: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les boîtes de dialogue

confirm(’Message’) : Afficher un message/uneinformation,

alert(’Message’) : Afficher un messaged’alerte,

val=prompt(’Message’,defaut) : Afficher unmessage et saisir une valeur.

Creation de pages Web Dynamiques – p.56/75

Page 59: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les classes (1/2)

var toto=new fonction([params]);fonction : constructeur de l’objet.function aire()

{ return this.largeur*this.hauteur;}

function Rectangle(x,y)

{// creation du champ largeur

this.largeur=x;

// creation du champ hauteur

this.hauteur=y;

// creation de la methode aire

this.aire=aire;

} Creation de pages Web Dynamiques – p.57/75

Page 60: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les classes (2/2)

Utilisation des classes :mon_rect=new Rectangle(10,10);document.write("largeur, hauteur, aire"+mon_rect.largeur+mon_rect.hauteur+mon_rect.aire());Ajout dynamique de méthodes :classe.prototype.methode=fonctionexemple :Rectangle.prototype.perimetre=perimetre

Creation de pages Web Dynamiques – p.58/75

Page 61: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

La classe String

var toto="titi";var titi=new String(); // chaine videconcaténation : +Liens avec la classe Math :eval() : eval("4+5")→ 9.parseInt() : conversion en entierparseFloat() : conversion en floattoString() : conversion en String

Creation de pages Web Dynamiques – p.59/75

Page 62: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

La classe image

var mon_img=new Image();mon_img.src=’Images/mon_image.gif’;

Préchargée au chargement de la page.affichage : propriété src des balises <img>.img.src=mon_img.srcImplique le changement dynamique de l’image.

Creation de pages Web Dynamiques – p.60/75

Page 63: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

La classe Date

ma_date = new Date();Possibilité de spécifier une date ou de prendre ladate système (Table 4.6)getDate() jour du moisgetDay() jour de la semainegetFullYear() année sur 4 chiffresgetHours(),getMinutes() heure, minutesgetMonth() mois

Autres fonctions (Table 4.7) et exemples (pagesHTML)

Creation de pages Web Dynamiques – p.61/75

Page 64: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Insertion de code Javascript (1/2)

Syntaxe :Balise <script></script>.Deux syntaxes :<script type="text/javascript"src="mon_fichier.js"></script>ou<script type="text/javascript">mon code.</script>Possibilité de combiner

Creation de pages Web Dynamiques – p.62/75

Page 65: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Insertion de code JavaScript (2/2)

Lieu d’insertionInsertion pour exécution différée : Dans labalise <head>. Code exécuté sur demande(appel de fonction, instanciation de classe)Insertion pour exécution directe Dans labalise <body>. Exécuté au chargement dela page.Réaction à évènements (onclick,onblur. . .Table 4.9)

Possibilité de combiner

Creation de pages Web Dynamiques – p.63/75

Page 66: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Hiérarchie des objets

plugins[] mimeTypes[]

navigatorself,

window,

parent,

top

frames[] location history

window

anchors[] links[] images[] applets embeds

elements[]

forms[]

document

window

Creation de pages Web Dynamiques – p.64/75

Page 67: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Recherche par Id

Fonction : document.getElementByIdPrise en compte des navigateurs :function getobj(id){if(document.layers)return document.id; // Netscape 4.x

// Netscape 6.x IE 5.xif(document.getElementById)return document.getElementById(id)

if(document.all)return id; // IE 4.x

}Creation de pages Web Dynamiques – p.65/75

Page 68: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Recherche par nom et balise

Recherche par nom (attribut name) :document.getElementsByName("nom");Recherche par nom de balise :document.getElementsByTagName("balise");

Creation de pages Web Dynamiques – p.66/75

Page 69: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Recherche par classe

function getElementbyClass(classname)

{

var inc=0;

var elt=new Array();

var alltags=document.all;

if(! alltags)

alltags=document.getElementsByTagName("*");

for (i=0; i<alltags.length; i++)

if (alltags[i].className==classname)

elt.unshift(alltags[i]);

return elt;

}Creation de pages Web Dynamiques – p.67/75

Page 70: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les CGI

Common Gateway Interface :Protocole de communication entre le serveurWeb et des applications.De plus en plus supplanté par PHP, AppletJava.Garde tout son intérêt pour de grossesapplications.

Creation de pages Web Dynamiques – p.68/75

Page 71: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Récupération des paramètres

Paramètres : liste d’affectation variable=valeur.Chaîne d’affectations.var1=val1&var2=val2. . .

méthode POST : Le serveur envoi la chaîned’affectations sur l’entré standard del’application.méthode GET : Positionnement de la chaîned’affectation dans la variable d’environnementQUERY_STRING.

Creation de pages Web Dynamiques – p.69/75

Page 72: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Principales variables

REQUEST_METHOD : type de passage de lachaîne de paramètres (GET, POST),QUERY_STRING : valeur de la chaîned’affectations (mode GET),CONTENT_LENGTH : longueur de la chaîned’affectation.

Creation de pages Web Dynamiques – p.70/75

Page 73: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Décodage des affectations

Un exemple en shell.ifs=$IFSIFS="&"set $QUERY_STRINGIFS=$ifsfor egal in $*do

echo "$egal <br/>"done

Creation de pages Web Dynamiques – p.71/75

Page 74: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Envoi de données

Content-type: type mime

contenu du documenttype mime a priori quelconque généralement :

text/plain : ascii outext/html : html.

Attention à la ligne vide entre Content-type et lecontenu.

Creation de pages Web Dynamiques – p.72/75

Page 75: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Les Cookies

Affectations de variables stockées chezl’utilisateur. Permet :

De stocker des informations de pages enpages sur un même site,d’identifier un utilisateur,d’effectuer des statistiques sur les accès desutilisateurs.

Creation de pages Web Dynamiques – p.73/75

Page 76: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Positionnement des Cookies

Content-type: text/htmlSet-Cookie: var=val;

contenu du documentPossibilité de répéter la ligne Set-Cookie pourpositionner plusieurs variables. La ligne videmarque le début du document.Options :

date d’expiration (expires),serveurs ayant accès au Cookie (domain),Zones du serveur ayant accès au Cookie(path),

Creation de pages Web Dynamiques – p.74/75

Page 77: CrØation de pages Web Dynamiques - GREYC · 2012-08-22 · CSS JavaScript HTML Creation· de pages Web Dynamiques Œ p.2/75. IntØrŒt du Cours php asp python .... CSS HTML JavaScript

Lecture des Cookies

Variable HTTP_COOKIE.var1=val1;va2=val2;. . .

Lecture similaire à celle de QUERY_STRING.

Creation de pages Web Dynamiques – p.75/75