TD10-2diaposParPage

Transcription

TD10-2diaposParPage
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
MODULE INF112
TD 10
2007 - 2008
1
INF112 - TD10
2003-20042007-2008
Plan
• Les formulaires (suite) :
– Traitement des données
• Javascript (suite)
– Calcul d’un score
– Traduction algo/Javascript, itération
• Mini site (CC3) : Cahier des charges
2
UJF : L1- L2 / Année 2007-2008
1
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
Formulaires (suite)
Traitement des données
3
INF112 - TD10
2003-20042007-2008
Que deviennent les données ?
• CGI (ex : Google)
• courrier électronique
(ex : Satisaction des
utilisateurs)
• fonction Javascript (ex : Score d'un Quizz)
4
UJF : L1- L2 / Année 2007-2008
2
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
CGI
HTML
HTMLHTML
HTML
HTML
HTML
HTML
Requête
Client
Client
http
http
Résultat
<html>
blabla
<html>
Serveur
SERVEUR
Serveur
http
HTTP
http
Demande de
recherche
CGI
résultat
Programme
(script CGI) :
Ex : moteur de
recherche
• Données transmises par l’URL (méthode GET) ou
par fichier accompagnant la requête (méthode POST)
• Données traitées par la CGI du serveur HTTP
5
INF112 - TD10
2003-20042007-2008
Envoi des données par
courrier électronique
• Méthode POST
• Le fichier de données est transmis au logiciel de courrier
électronique du poste client (s'il existe).
• Le logiciel de courrier électronique expédie le fichier
normalement au destinataire.
Client
Client
http
http
Paramètres
Messagerie
Messagerie
électronique
électronique
Internet
Messagerie
Messagerie
électronique
électronique
du
dudestinataire
destinataire
6
UJF : L1- L2 / Année 2007-2008
3
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
Données utilisées par une
fonction Javascript
• Ex : calcul du score d'un questionnaire
• Javascript inclus dans la page html du
formulaire
• Nécessite un interpréteur Javascript
installé sur le poste client
• La fonction récupérant et traitant les
données est exécutée par le poste client.
C'est elle qui envoie le message résultat.
7
INF112 - TD10
2003-20042007-2008
Balise <FORM>
Exemples d’envoi et/ou de traitement de données :
Par GCI :
<FORM ACTION="/cgi-bin/cours1" METHOD=POST>
<FORM NAME=gs METHOD=GET ACTION=/search>
<FORM METHOD=GET ACTION="http://clips.imag.fr/cgi-bin/query">
Par courrier électronique :
<FORM METHOD=POST ACTION="mailto:[email protected]">
<FORM ACTION="mailto:[email protected]" METHOD=POST>
Par une fonction Javascript incluse dans la page html :
<FORM NAME= "pg1">
UJF : L1- L2 / Année 2007-2008
8
4
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
Exercice 10-1 : URL
Quelle est l’URL produite lorsque l’utilisateur rentre la valeur “ biologie ” dans
le champ de saisie texte et valide en appuyant sur le bouton "Recherche
Google" ?
1. http://www.google.fr/search
2. http://www.google.fr/search?hl=fr&q=biologie&btn=Chercher&meta=lang_fr
3. http://www.google.fr/search?btn=Chercher&meta=countryFR
4. http://www.google.fr/search?hl=fr&q=biologie&btn=Chercher&meta=countryFR
5. http://www.google.fr/search?hl=de&q=biologie&btn=Chercher&meta=countryFR
6. http://www.google.fr/search?hl=fr&q=procaryote&btn=Chercher&meta=lang_fr
q = « query term » ; terme de recherche
meta=lang_fr ; choix langue … etc …
INF112 - TD10
9
2003-20042007-2008
Javascript
Calcul d’un score
Traduction algo/Javascript, itération
10
UJF : L1- L2 / Année 2007-2008
5
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
Javascript (1)
• Permet de rendre les pages Web
dynamiques
• Exemples : jeux, boutons animés,
vérification de formulaires, calcul de
scores
• Code Javascript
– Soit dans la page HTML (partie entête)
– Soit dans un fichier séparé
11
INF112 - TD10
2003-20042007-2008
Exemple : bouton dynamique
<HTML> <HEAD> <TITLE>BoutonDynamique</TITLE>
<SCRIPT LANGUAGE="JavaScript">
function VersionNavigateur(Netscape, Explorer) {
if ((navigator.appVersion.substring(0,3) >= Netscape
&& navigator.appName == 'Netscape') ||
(navigator.appVersion.substring(0,3) >= Explorer
&& navigator.appName.substring(0,9) == 'Microsoft'))
return true;
else return false;
}
</SCRIPT>
</HEAD>
<BODY>
<P>
<A HREF="mailto:[email protected]"
onMouseOver="if (VersionNavigateur(3.0,4.0))
img1.src='boutonAttract.png' "
onMouseOut="img1.src='boutonRepos.png' ">
<IMG NAME="img1" WIDTH=116 HEIGHT=44 BORDER=0
SRC="boutonRepos.png" onLoad="tempImg=new Image(0,0);
tempImg.src='boutonAttract.png'"></A>
12
</BODY></HTML>
UJF : L1- L2 / Année 2007-2008
6
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
Exemple : calcul d'un score
13
INF112 - TD10
2003-20042007-2008
<html><head><title>Quizz</title>
<script language="JavaScript">
function getScore() {
var score; score = 0;
var numQues=2;
if (document.quizz.question1[1].checked == true) score++;
if (document.quizz.question2[0].checked == true) score++;
window.alert("score : "+ score*100/numQues + "%"); }
</script> </head>
<body>
<p align="center"><font size="6" color="#9999FF">Auto-Evaluation </font></p>
<p>Ceci est un test &agrave; choix multiples. En fin de .... Bonne chance !!</p>
<form name= "quizz">
1. Qu'est ce que le WWW ? <br>
<input type="radio" name="question1" value="1"> Warp Wire Work
<input type="radio" name="question1" value="2"> World Wide Web
<input type="radio" name="question1" value="3"> World Web Workspace<br>
<br>
2. Par quoi commence une page html ?<br>
<input type="radio" name="question2" value="1"> &lt;HTML&gt;
<input type="radio" name="question2" value="2"> &lt;BEGIN&gt;
<input type="radio" name="question2" value="3"> &lt;HTTP&gt;<br>
<br>
<p align="center">
<INPUT type="button" value="Score obtenu" onClick="getScore(this.form)">
</p>
</form></body></html>
14
UJF : L1- L2 / Année 2007-2008
7
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
Javascript (2)
• Utilisation simplifiée pour cet enseignement
• Similarité entre ce langage et VBA = mêmes
types de constructions
–
–
–
–
déclaration
affectation
condition
boucle / itération (initialisation, arrêt, incrémentation)
• Cf. fiche de traduction Algo/Javascipt
15
INF112 - TD10
2003-20042007-2008
Traduction Algo / Javascript (1)
Commentaire
Algorithme
{phrase en
commentaire }
Déclaration de variable
Affectation
i : entier
x←2
ch ← "chaine"
Incrémenter une variable j ← j + 1
Opérateurs sur nombres + - x /
Itération (pour tout)
Itération (tant que)
UJF : L1- L2 / Année 2007-2008
pour i= 1 à 3
faire
action
fin pour
j←3
tant que j>0 faire
action1
action2
j← j-1
Fin tant que
Javascript
// commentaire sur une ligne
/* commentaire
sur plusieurs lignes */
Var i
x=2;
ch = "chaine" ;
j = j+1 (ou j ++ )
+ - * /
for(i=1; i<=3; i++) {
action;
}
j=3
while (j>0) {
action1;
action2;
j=j-1;
}
16
8
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
Traduction Algo / Javascript (2)
Instruction condition
Condition
Algorithme
Si cond
alors
action1
sinon
action2
action3
Fin Si
Javascript
if (cond){
action1
}
else {
action2
action3
}
A=B
A>B
&&
Mod
Ex : A mod B
A==B
A>B
(A = = B) && (A>B)
%
Ex : A % B
Et logique
Modulo
(reste de la division
entière)
Fonction affichage de texte Ecrire (x,‘texte’ )
Fonction affichage fenêtre Fenêtre(‘texte’,i,j)
Document.writeln (x,‘texte’)
Alert(‘texte’,i,j)
17
INF112 - TD10
2003-20042007-2008
Exemple : bonjour
<HTML>
<HEAD> <TITLE>PageBonjour</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- // Debut script
function afficherBonjour() {
document.writeln("Bonjour<BR>");
}
// Fin script -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>afficherBonjour();</SCRIPT>
</BODY>
</HTML>
UJF : L1- L2 / Année 2007-2008
18
9
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
Exemple : itération
<HTML>
<HEAD> <TITLE>PageIteration</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!-- // Debut script
function afficherIteration() {
var i;
for (i=1;i<=10;i++) {
document.writeln(i,"<BR>");
}
}
// Fin script -->
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT>afficherIteration();</SCRIPT>
</BODY>
</HTML>
INF112 - TD10
19
2003-20042007-2008
Exercice 10-2 :
Ecrire une fonction Javascript qui, insérée au bon endroit dans une
page html, permette l'affichage du texte suivant à l'aide d'une
itération "for" :
1 bonjour
2 bonjour
3 bonjour
4 bonjour
....
10 bonjour
20
UJF : L1- L2 / Année 2007-2008
10
INF 112 - TD10
INF112 - TD10
2003-20042007-2008
Exercice 10-3 :
A l'aide d'une condition "si", modifier la fonction précédente afin
d'obtenir l'affichage du texte suivant :
1 bonjour
2 bonsoir
3 bonjour
4 bonsoir
....
10 bonsoir
21
UJF : L1- L2 / Année 2007-2008
11

Documents pareils