Séance d ED n 5 : HTML et JavaScript



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

TD HTML AVEC CORRECTION

TP JAVASCRIPT OMI4 TP5 SRC

Création de formulaires interactifs

Activités HTML. Code: act-html

Dévéloppement de Sites Web

Normes techniques 2011

Formulaires et Compteurs

RAPPORT AUDIT SEO. Élaboré à l'attention de : Monsieur Greber Élaboré par : Cédric Peinado

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

Formulaire pour envoyer un mail

Bernard Lecomte. Débuter avec HTML

ENVOI EN NOMBRE DE Mails PERSONNALISES

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

3. RÉALISATION ET QUALIFICATION D UN PROTOTYPE 3.1 Réalisation d un prototype CRÉATION D UNE PAGE WEB STATIQUE AU FORMAT HTML

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

NAMEBAY PRO. votre site de revente de noms de domaine en marque blanche. Documentation technique

HTML/CSS - Travaux Pratiques 2

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

Informatique : Création de site Web Master 2 ANI TP 1

Initiation à html et à la création d'un site web

Logiciels de référencement

Guide de réalisation d une campagne marketing

CREATION d UN SITE WEB (INTRODUCTION)

HTML, CSS, JS et CGI. Elanore Elessar Dimar

ING & NEWSLETTER NEWSLETTER RESPONSIVE

Techniques de Programmation pour Internet

Sauvegarde et restauration de données

PLATE-FORMES LIBRES *AMP CYBER PAIEMENT / CYBER PLUS PAIEMENT GUIDE DE MIGRATION FACILE ET EN UNE HEURE PLATE-FORME SYSTEMPAY

CRÉER DES LEÇONS AVEC L'ÉDITEUR DU LOGICIEL 1000 MOTS POUR APPRENDRE À LIRE EN FRANÇAIS, ANGLAIS ET ALLEMAND

GESTION DE L'ORDINATEUR

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

// HTML, Javascript XHTML & CSS

PHP et les Bases de données - Généralités

CONCEPTION D S ADAPTATIFS

Extended communication server 4.1 : VoIP SIP service- Administration

Rapport SVA L.I.R.T/ESP 2008 RAPPORT SVA. Par: Jean François Diokel DIOKH. Professeur: M. OUYA. Jean François Diokel DIOKH 1

OneDrive, le cloud de Microsoft

Cyberclasse L'interface web pas à pas

26 Centre de Sécurité et de

101 Réaliser et publier un site WEB

Optimiser pour les appareils mobiles

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

Creation d une page Web

GROOBAX. cliquer sur le «G» Cliquer sur «options» Sélectionner le dossier qui contiendra les paramètres => Cliquer A chercher le dossier créé en 2/

Module BD et sites WEB

Formation HTML / CSS. ar dionoea

GUIDE DE L UTILISATEUR Recoveo Récupérateur de données

Netissime. [Sous-titre du document] Charles

Support pour les langues s écrivant de droite à gauche

Présentation du Framework BootstrapTwitter

7.0 Guide de la solution Portable sans fil

Création d un formulaire de contact Procédure

En Perl, les choses sont un peu différentes. Le cgi Perl ne peut être qu'un programme qui génère des sorties.

Bien travailler sur plusieurs écrans

Rapports d activités et financiers par Internet. Manuel Utilisateur

1 - Se connecter au Cartable en ligne

PROTEGER SA CLE USB AVEC ROHOS MINI-DRIVE

Pack Fifty+ Normes Techniques 2013

Gestion de stock pour un magasin

Le langage C. Séance n 4

PLANIFIER UNE RÉUNION AVEC DOODLE

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

Au préalable, nous nous plaçons dans l espace au sein duquel nous allons créer notre raccourci vers l ENTG.

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

FANTEC DB-229US Manuel de l'utilisateur

Attaques de type. Brandon Petty

Fiche n 2 : Créer une activité (avec ressource associée)

Effectuer des changements par lots avec BCDI abonnement

Ouvrir le compte UQÀM

Intranet et les Bases de Données

Utilisez Toucan portable pour vos sauvegardes

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

MEDIAplus elearning. version 6.6

UltraBackup NetStation 4. Guide de démarrage rapide

Document d accompagnement pour l utilisation du Cartable en ligne Lycée des Métiers Fernand LÉGER 2013/2014

Campagnes d ings v.1.6

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Manuel de l utilisateur de HP Array Configuration Utility

Parcours guidé : créer des pages simples au format html avec Nvu 28/1/10

Prise en main. Norton Ghost Pour trouver des informations supplémentaires. A propos de Norton Ghost

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

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :


Tutoriel : Utiliser Time Machine pour sauvegarder ses données

SUPPORT DE COURS / HTML

Introduction. Passage de sites statiques à des sites dynamiques

AVEC LIVE TRADER, VISEZ PLUS HAUT POUR VOS INVESTISSEMENTS

Notice d accessibilité HTML, CSS et JavaScript

Démonstration de la mise en cache via HTML 5 sur iphone

WIMS. Découvrir et utiliser

Utilisation de l éditeur.

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

La Clé informatique. Formation Internet Explorer Aide-mémoire

Chapitre 1. Prise en main

Transcription:

Séance d ED n 5 : HTML et JavaScript EXERCICE 1 1) le but de cet exercice est de construire l'interface suivante en html: une réponse : 1) <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <title>corrige exo1</title> </head> <body> <p><form name=monformulaire> <table BORDER WIDTH="300" HEIGHT="125" > <tr> <td><input type=button value= Nom ></td> <td><input type=text name=nom size=20></td> </tr> <tr> <td><input type=button value= Telephone ></td> <td><input type=text name=tel size=20></td> </tr> <tr> <td><input type=button value= Adresse ></td> <td><input type=text name=adresse size=20></td> </tr> </table> </form> </body> </html> on obtient : 1/12

2) Par la suite on veut un document composé de deux frames, l'une nommée «questionnaire», l'autre «réponse» qui soient ainsi disposées : frame questionnaire : 40% de la fenêtre frame réponse : 60% de la fenêtre où le questionnaire est le questionnaire précédent : (3 boutons et 3 champs de saisie texte) avec un bouton valider fonctionnement : L'appui sur un bouton (nom, adresse ou téléphone) doit permettre d'afficher dans une fenêtre alerte la valeur du champ de saisie texte correspondant. L'appui sur le bouton valider affiche dans la frame de droite les 3 champs de saisie de la fenêtre de gauche. rappel : alert(chaine) ouvre une fenêtre pop-up contenant la chaîne et un bouton OK. Donnez le source des divers fichiers nécessaires. Une réponse : Il vous faut trois fichiers : 1- Le fichier comportant la description des frames (frameset) 2/12

frames.html <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <title>corrige exo 1-2 </title> </head> <FRAMESET cols="40%,*"> <frame name=questionnaire src=quest.html> <frame name=reponse src=rep.html> </FRAMESET> </HTML> 2- le fichier questionnaire (quest.html) qui comporte les boutons et qui a le fonctionnement indiqué : quest.html <!doctype html public "-//w3c//dtd html 4.0 transitional//en"> <html> <head> <title>corrige exo2 questionnaire</title> </head> <body> <p><form name=monformulaire> <table BORDER WIDTH="300" HEIGHT="125" > <tr> <td><input type=button value= Nom onclick="alert(document.monformulaire.nom.value);"></td> <td><input type=text name=nom size=20 value=''></td> </tr> <tr> <td><input type=button value=telephone onclick="alert(document.monformulaire.tel.value);"></td> <td><input type=text name=tel value='' size=20></td> </tr> <tr> <td><input type=button value= Adresse onclick="alert(document.monformulaire.adresse.value);"></td> <td><input type=text name=adresse value='' size=20></td> </tr> </table> <center> <input type=button value=valider onclick="window.parent.reponse.document.write('nom =', document.monformulaire.nom.value); window.parent.reponse.document.write('<p>adresse=', document.monformulaire.adresse.value); window.parent.reponse.document.write('</p><p>telephone=',document.monformulaire.tel.value); window.parent.reponse.document.write('</p>');"> </form> </BODY> </HTML> 3/12

et 3- le fichier reponse rep.html qui est un fichier vide de contenu mais qui sera remplacé par le résultat du questionnaire généré : <html> <head> <title>corrige exo2 reponse</title> </head> <body></body> </HTML> rep.html on obtient : 4/12

EXERCICE 2 Le but de cet exercice est de réaliser un questionnaire de type QCM en HTML et JavaScript. Vous devez réaliser un cédérom de type pédagogique. Il vous est demandé de laisser à l utilisateur le soin de pouvoir s auto-évaluer. Compte tenu des contraintes et des limites qui vous ont été décrites dans le cahier des charges, vous avez décidé de développer ce test suivant trois axes : un formulaire (ou questionnaire) sous forme de QCM et utilisant les objets du langage JavaScript, une procédure de correction dynamique du questionnaire (écrit en JavaScript), un corrigé complet du test dans une page HTML. 1 Le formulaire type QCM La plupart des questionnaires de type «QCM» utilisent le principe de questions - réponses. Chaque question est suivie d un certain nombre de réponses, dont une ou plusieurs peuvent être correctes. A ce niveau, une certaine interactivité (limitée) est proposée à l utilisateur, elle se matérialise par trois boutons disposés au bas du formulaire à cet effet et consiste à : 1. apporter une correction dynamique du formulaire en lançant la fonction correspondante, 2. effacer l ensemble des sélections, 3. visualiser le corrigé complet du test. Il existe une différence entre les notions de correction dynamique et de corrigé : la correction est dite dynamique quand elle teste la véracité des cases cochées par l intermédiaire d un petit algorithme, le corrigé affiche directement la réponse globale sans corriger le test. 2 La correction dynamique La correction dynamique est réalisée par la fonction "testqcm(form)". Cette fonction est appelée par une action sur le bouton "Correction", qui lit et teste les valeurs des réponses du formulaire (passé en paramètre). Le résultat des tests est affiché dans une fenêtre externe (illustré par l'image ci-dessous), et ne donne à l'utilisateur que deux indices par question : soit la réponse à la question est correcte, soit la réponse à la question est incorrecte. 5/12

Pour des raisons essentiellement pédagogiques, les résultats affichés sont volontairement vagues. En effet, l objectif n est pas de donner rapidement les bonnes réponses quels que soient les choix de l usager, mais au contraire, de forcer l utilisateur à rechercher par luimême le résultat global parfait, en une ou plusieurs itérations du questionnaire. 3 Le corrigé du questionnaire Dans le cas où l utilisateur ne souhaite pas effectuer ce travail, il lui est toujours possible de pouvoir consulter directement le corrigé du questionnaire en cliquant sur le bouton "Corrigé". Le corrigé du questionnaire n est autre qu une simple page HTML contenant du texte et qui s affiche dans une fenêtre externe comme le montre l image ci-dessous. Chaque fenêtre externe contient un bouton qui permet à l utilisateur de pouvoir fermer correctement la dite fenêtre. TRAVAIL A FAIRE : 1) Ecrire le programme HTML du formulaire «QCM» représenté par l image cidessous. 6/12

7/12

2) Ecrire le code HTML de la fenêtre d affichage du corrigé représentée par l image cidessous. 8/12

3) Ecrire le code Javascript de la fonction "testqcm(form)" incluse dans le ficher HTML du formulaire «QCM», et qui affiche les résultats de la correction dynamique représentés par l image ci-dessous. Réponses à l exercice 2 Il faut créer deux fichiers HTML contenant l un le formulaire et l autre le corrigé. Programme source du fichier test_raid.htm contenant le questionnaire et la fonction: "testqcm(form)" : <!-- DATE DE CREATION: 07/06/99 --> <HTML> <HEAD> <TITLE>L'utilisation des procédés RAID1 et RAID5 - test</title> <META NAME="Description" CONTENT="L'utilisation des procédés RAID1 et RAID5 - test"> <META NAME="Keywords" CONTENT="Administration avec Windows NT"> <META NAME="Author" CONTENT=""> <META NAME="Generator" CONTENT="WebExpert3"> <META NAME="Organisme" CONTENT=""> <SCRIPT LANGUAGE="JavaScript"> <!-- début du masquage de script // ** fonction qui affiche le corrigé du test dans une fenêtre externe ** function corrige() { var fenetre = window.open("rep_raid.htm","fenetre1","status, scrollbars=yes, resizable=yes, HEIGHT=400, WIDTH=550") fenetre.creator = window } // ** fonction qui lit et teste les valeurs des réponses ** function testqcm(form) { var wintest = window.open("","fenetre2","status, scrollbars=no, resizable=no, height=250, width=370") 9/12

wintest.creator = window if (wintest!= null) { // wintest.document.clear() // Entête de la fenetre externe var Contenu = "<HTML><HEAD><TITLE>Correction des questions du QCM</TITLE></HEAD>" Contenu += "<BODY SCROLL=AUTO LEFTMARGIN=60>" Contenu += "<H3><FONT COLOR='#800000'>Correction dynamique du test</font></h3>" Contenu += "<FONT SIZE=2>" // test de la question 1 if (form.question1[2].checked && form.question1[2].value == "C") { if (form.question1[0].checked form.question1[1].checked form.question1[3].checked) { Contenu += "<P><LI>La réponse à la question 1 est <U>incorrecte</U>." } else { Contenu += "<P><LI>La réponse à la question 1 est correcte." } } else { Contenu += "<P><LI>La réponse à la question 1 est <U>incorrecte</U>." } // test de la question 2 if (form.question2[0].checked && form.question2[0].value == "A") { if (form.question2[1].checked form.question2[2].checked form.question2[3].checked) { Contenu += "<P><LI>La réponse à la question 2 est <U>incorrecte</U>." } else { Contenu += "<P><LI>La réponse à la question 2 est correcte." } } else { Contenu += "<P><LI>La réponse à la question 2 est <U>incorrecte</U>." } // test de la question 3 if (form.question3[1].checked && form.question3[1].value == "B" && form.question3[3].checked && form.question3[3].value == "D" ) { if (form.question3[0].checked form.question3[2].checked form.question3[4].checked) { Contenu += "<P><LI>La réponse à la question 3 est <U>incorrecte</U>." } else { Contenu += "<P><LI>La réponse à la question 3 est correcte." } } else { Contenu += "<P><LI>La réponse à la question 3 est <U>incorrecte</U>." } // Bas de la fenêtre externe Contenu += "</FONT>" Contenu += "<P><CENTER><FORM><INPUT TYPE='button' VALUE='OK' Onclick='self.close()'></FORM>" Contenu += "</CENTER></BODY></HTML>" wintest.document.write(contenu) } } // fin --> </SCRIPT> </HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#000080" VLINK="#800080" ALINK="#FF0000" SCROLL=AUTO LEFTMARGIN=20 RIGHTMARGIN=0 TOPMARGIN=0> <FONT FACE="Times New Roman"> <TABLE WIDTH="100%" ALIGN="CENTER" CELLPADDING="0" CELLSPACING="0" BORDER="0"> <COL SPAN="3"> <TR> <TD> </TD> <TD> <CENTER><H3><FONT COLOR="#800000">L'utilisation des procédés RAID1 et RAID5<BR>Test d'auto-évaluation</font></h3> <HR></CENTER> <!-- zone du contenu --> <FONT SIZE=2> <P><I><B><FONT COLOR="#008000">Qestionnaire sous forme de QCM. Les questions peuvent comporter une ou plusieurs bonnes réponses.</font></b></i> <FORM NAME="QCM" METHOD="get"> <P><B>Question 1 :</B> 10/12

<BR>Quel est le type de disque système qui réalise une copie exacte de toutes les données d'une partition disque dans une autre partition? <I> <LI><INPUT TYPE="checkbox" NAME="question1" VALUE="A"> RAID.<BR> <LI><INPUT TYPE="checkbox" NAME="question1" VALUE="B"> Sauvegarde disque.<br> <LI><INPUT TYPE="checkbox" NAME="question1" VALUE="C"> Mise en miroir.<br> <LI><INPUT TYPE="checkbox" NAME="question1" VALUE="D"> Dépannage à chaud.<br></i> <P><B>Question 2 :</B> <BR>Quel est le type de disque système qui utilise de 3 a 32 disques physiques et est aussi connu sous le nom de RAID5? <I> <LI><INPUT TYPE="checkbox" NAME="question2" VALUE="A"> Agrégats par bandes avec parité.<br> <LI><INPUT TYPE="checkbox" NAME="question2" VALUE="B"> Agrégats par bandes sans parité.<br> <LI><INPUT TYPE="checkbox" NAME="question2" VALUE="C"> Disques en miroir.<br> <LI><INPUT TYPE="checkbox" NAME="question2" VALUE="D"> Agrégats par bandes avec données répétitives.<br></i> <P><B>Question 3 :</B> <BR>Quel sont les types de disques qui assurent la tolérance de pannes? <I> <LI><INPUT TYPE="checkbox" NAME="question3" VALUE="A"> Les agrégats de partition.<br> <LI><INPUT TYPE="checkbox" NAME="question3" VALUE="B"> Les agrégats par bandes avec parité.<br> <LI><INPUT TYPE="checkbox" NAME="question3" VALUE="C"> Les agrégats par bandes sans parité.<br> <LI><INPUT TYPE="checkbox" NAME="question3" VALUE="D"> Les disques en miroir.<br> <LI><INPUT TYPE="checkbox" NAME="question3" VALUE="E"> RAID de niveau 0.<BR></I> <P><CENTER> <INPUT TYPE="button" VALUE="Correction" onclick="testqcm(this.form)"> <INPUT TYPE="reset" VALUE="Effacer"> <INPUT TYPE="button" VALUE="Corrigé" onclick="corrige()"> </FORM></center> </FONT></TD> <TD> </TD> </TR> </TABLE> </FONT> </BODY> </HTML> Programme source du fichier rep_raid.htm contenant le corrigé du test : <!-- DATE DE CREATION: 07/06/99 --> <HTML> <HEAD> <TITLE>L'utilisation des procédés RAID1 et RAID5 - réponse au test</title> <META NAME="Description" CONTENT="L'utilisation des procédés RAID1 et RAID5 - réponse au test"> <META NAME="Keywords" CONTENT="Administration avec Windows NT"> <META NAME="Author" CONTENT=""> <META NAME="Generator" CONTENT="WebExpert3"> <META NAME="Organisme" CONTENT=""></HEAD> <BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#000080" VLINK="#800080" ALINK="#FF0000" SCROLL=AUTO LEFTMARGIN=20 RIGHTMARGIN=0 TOPMARGIN=0> 11/12

<FONT FACE="Times New Roman"> <TABLE WIDTH="100%" ALIGN="CENTER" CELLPADDING="0" CELLSPACING="0" BORDER="0"> <COL SPAN="3"> <TR> <TD> </TD> <TD> <CENTER><H3><FONT COLOR="#800000">L'utilisation des procédés RAID1 et RAID5<BR>Réponse du test</font></h3> <HR></CENTER> <!-- zone du contenu --> <FONT SIZE=2> <P><I><B><FONT COLOR="#008000">Les bonnes réponses aux questions apparaissent en couleur rouge.</font></b></i> <P><B>Question 1 :</B> <BR>Quel est le type de disque système qui réalise une copie exacte de toutes les données d'une partition disque dans une autre partition? <I> <LI> RAID.<BR> <LI> Sauvegarde disque.<br> <LI><B><FONT COLOR="#FF0000"> Mise en miroir.</font></b><br> <LI> Dépannage à chaud.<br></i> <P><B>Question 2 :</B> <BR>Quel est le type de disque système qui utilise de 3 a 32 disques physiques et est aussi connu sous le nom de RAID5? <I> <LI><B><FONT COLOR="#FF0000"> Agrégats par bandes avec parité.</font></b><br> <LI> Agrégats par bandes sans parité.<br> <LI> Disques en miroir.<br> <LI> Agrégats par bandes avec données répétitives.<br></i> <P><B>Question 3 :</B> <BR>Quel sont les types de disques qui assurent la tolérance de pannes? <I> <LI> Les agrégats de partition.<br> <LI><B><FONT COLOR="#FF0000"> Les agrégats par bandes avec parité.</font></b><br> <LI> Les agrégats par bandes sans parité.<br> <LI><B><FONT COLOR="#FF0000"> Les disques en miroir.</font></b><br> <LI> RAID de niveau 0.<BR></I> <CENTER><FORM> <INPUT TYPE="button" VALUE="Fermer la fenêtre" Onclick="self.close()"> </FORM></CENTER> </TD> <TD> </TD> </TR> </TABLE> </FONT> </BODY> </HTML> 12/12