98 Fonctionnement du système Conception du système
Transcription
98 Fonctionnement du système Conception du système
DEFRANCE Livre Page 98 Jeudi, 6. d cembre 2007 8:30 08 98 Ateliers de création d’applications Ajax-PHP PARTIE III Cette structure est composée : • d’une page HTML (index.html) identique à celle de l’atelier précédent mais dans laquelle nous avons attribué un identifiant à chaque balise <div> et ajouté une instruction pour lier la page HTML à la feuille de styles ; • d’un simple fichier texte (gainMax.txt) identique au précédent ; • d’une feuille de styles (style.css) dans laquelle nous avons défini les différents styles correspondant aux identifiants des balises <div>. Fonctionnement du système Le fonctionnement du système est semblable à celui de l’atelier précédent hormis le fait que la mise en forme des éléments <div> sera effectuée par une feuille de styles externe et que le message présentant la somme gagnée n’apparaîtra à l’écran que lorsque le résultat de la réponse HTTP sera disponible. Conception du système Nous allons commencer par modifier la page HTML en attribuant des identifiants spécifiques à chaque balise <div>. Pour cela, ouvrez la page HTML précédente (index.html) et sauvegardez-la sous le même nom dans un nouveau répertoire nommé /atelier8-2/ (profitez-en pour faire ensuite la même opération avec le fichier gainMax.txt qui est lié à cette page). Ajoutez ensuite les différents attributs id et leur nom dans les balises <div> concernées avec l’éditeur de Dreamweaver en mode code (voir code 8-1 et le repère 1 de la figure 8-9). Code 8-3 : <div id="page"> <!--zone du résultat--> <div id="info"> Bravo, vous avez gagné <span id="resultat">0</span> euros </div> <!--zone du formulaire--> <div id="formulaire"> <form method="GET"> <input name="button" type="button" onClick="jouer();" value="JOUER" /> </form> </div> </div> Placez-vous ensuite dans la balise <head> de la page HTML et ajoutez la ligne de code cidessous (voir code 8-4 et le repère 2 de la figure 8-9) qui permettra de lier les identifiants précédemment ajoutés aux balises <div> avec la feuille de styles (style.css) que nous allons créer ensuite. Code 8-4 : <link rel="stylesheet" type="text/css" href="style.css" /> DEFRANCE Livre Page 99 Jeudi, 6. d cembre 2007 8:30 08 Applications Ajax-PHP synchrones CHAPITRE 8 Figure 8-9 Code de la page index.html après l’ajout de la feuille de styles style.css Créez une nouvelle feuille de styles avec Dreamweaver (depuis le menu Fichier>Nouveau, cliquez sur le bouton Pages vierges puis sélectionnez CSS dans la liste proposée). Saisissez ensuite les différentes règles de style ci-dessous (voir code 8-5). Enregistrez la feuille de styles sous le nom style.css dans le même répertoire que la page HTML. Code 8-5 : body, h1, h2, p { font-size: 1em; margin: 0; padding: 0; } body { font-family: Verdana, Geneva, Arial, sans-serif; text-align: center; } #page { position: relative; margin: 0 auto; width: 600px; height: 200px; border-top: medium solid #ff0000; border-bottom: medium solid #ff0000; } #info { position: absolute; left: 100px; top: 30px; } 99 DEFRANCE Livre Page 100 Jeudi, 6. d cembre 2007 8:30 08 100 Ateliers de création d’applications Ajax-PHP PARTIE III #resultat { font-weight: bold; } #formulaire { position: absolute; left: 290px; top: 100px; } Les différentes règles de style permettront d’améliorer la présentation de la page. Ainsi, la règle de style page permettra de créer un conteneur principal et d’afficher un trait rouge en haut et en bas de cette zone centrale pour bien la délimiter. Les règles de style info et formulaire permettront de placer le bouton JOUER et la zone de résultat d’une manière relative au conteneur page. Enfin, la règle de style resultat permettra d’afficher le résultat placé dans la balise <span> en gras pour bien le mettre en évidence. Ressources sur les CSS Pour plus d’informations sur les styles, reportez-vous au chapitre 17 de cet ouvrage. Après avoir saisi et enregistré la feuille de styles, revenez à la page HTML et passez la fenêtre du document en mode Création (voir repère 1 de la figure 8-10). Si tout est correct, les styles devraient alors être appliqués à la page directement dans la fenêtre document de Dreamweaver (voir figure 8-10). Vous pouvez aussi demander un aperçu de la page dans le navigateur (à l’aide du bouton Aperçu, voir repère 2 de la figure 8-10, ou plus simplement en utilisant le raccourci clavier F12) pour vous assurer que tous les styles fonctionnent aussi dans le navigateur. Figure 8-10 Affichage de la page index.html en mode Création afin de vérifier que les styles sont bien appliqués à la page HTML Nous allons maintenant modifier la règle de style de l’identifiant de la zone de résultat pour la rendre invisible lors du chargement initial de la page. Pour cela, ouvrez la feuille DEFRANCE Livre Page 101 Jeudi, 6. d cembre 2007 8:30 08 Applications Ajax-PHP synchrones CHAPITRE 8 101 de styles et ajoutez la directive visibility: hidden (à noter que nous aurions aussi pu utiliser la directive display: none) à la règle de style dont l’identifiant est info (voir code 8-6). Enregistrez ensuite votre feuille de styles et retournez dans la page HTML en mode Création. La zone de résultat et son message doivent maintenant avoir disparu. Code 8-6 : #info { position: absolute; left: 100px; top: 30px; visibility: hidden } Il nous reste maintenant à ajouter l’instruction qui rendra visible la balise dont l’identifiant se nomme info dès que la valeur du résultat sera connue. Pour cela nous allons manipuler le DOM en utilisant la méthode getElementById() pour référencer l’élément de la balise <div> à l’aide de son identifiant info. Nous agirons ensuite sur cet élément via la propriété style.visibility pour affecter à la propriété visibility sa nouvelle valeur visible qui, comme son nom l’indique, rendra visible l’élément concerné (voir code 8-7). Code 8-7 : /*-----------------------------MOTEUR AJAX-----------------------*/ function jouer() { /*--------------------Config et envoi de la requête SYNCHRONE : */ objetXHR = new XMLHttpRequest(); objetXHR.open("get","gainMax.txt", false); objetXHR.send(null); /*--------------------------------Attente du retour SYNCHRONE : */ var nouveauGain = objetXHR.responseText; document.getElementById("resultat").innerHTML=nouveauGain; document.getElementById("info").style.visibility="visible"; } /*--------------------------FIN DU MOTEUR AJAX----------------*/ Test du système Ouvrez la page index.html dans le navigateur Firefox en appuyant sur la touche F12 de Dreamweaver (ou avec la méthode de votre choix, revoir la procédure de test de l’atelier précédent). Cette fois, les éléments doivent être mis en page selon les paramètres de la feuille de styles à laquelle ils sont liés et aucun message de résultat par défaut ne doit s’afficher au chargement de la page. Cliquez ensuite sur le bouton JOUER. Le résultat maximum accompagné de son message introductif doivent maintenant s’afficher à l’écran (voir repère 2 figure 8-11). Figure 8-11 Test de la page HTML de l’atelier 8-2. Le message du résultat (repère 2) doit s’afficher uniquement après avoir appuyé sur le bouton JOUER (repère 1).