Nous allons créer un document
affichant la table de multiplication demandée par l'utilisateur par l'intermédiaire d'un formulaire. Nous
utiliserons un cadre invisible pour conserver dans une variable le nom de la table demandée.
L'utilisation de cadres nous oblige à créer trois fichiers HTML.
Ce fichier annonce les deux cadres, en faisant en sorte que l'un soit invisible et l'autre occupe tout l'espace disponible.
Cela nous donne :
Ce fichier sert à déclarer deux variables JavaScript.
Comme ce fichier ne sera pas affiché, il contiendra :
Ce fichier contiendra un formulaire permettant de choisir la table à afficher. Nous lui ajouterons par la suite une fonction de traitement du formulaire et la possibilité d'afficher la table demandée.
Ce fichier contient pour l'instant :
Les 3 fichiers HTML étant prêt, il nous reste à écrire le traitement JavaScript qui va leur donner vie, c'est à dire, d'une part la fonction envoi() appelée par le formulaire, et d'autre part les instructions d'affichage de la table demandée.
Les instructions d'affichage de la table seront placées au début du fichier result.html, juste après la balise BODY. Elles ne devront pas être exécutées lors du premier affichage puisqu'aucune table n'a encore été choisie. C'est en testant la variable debut du cadre invisible que nous saurons s'il s'agit du premier affichage ou non.
Nous devons accéder à une variable qui n'est pas définie dans le cadre courant. Il faudra la préfixer en indiquant son emplacement, c'est à dire le cadre nommé statut dans le fichier HTML principal. La référence à la fenêtre principale s'obtient avec la propriété parent du cadre courant. Il suffit d'ajouter ensuite le nom du cadre contenant la variable.
Finalement, l'accès à la variable debut du cadre statut se fait en écrivant :
parent.statut.debut
De même, pour avoir accès au nom de la table à afficher, nous écrirons :
parent.statut.numTable
Finalement, l'affichage de la table sera obtenu par :
La fonction envoi(), exécutée lors de l'appui sur le bouton "Afficher" du formulaire, devra effectuer trois opérations.
Cela s'obtient avec le code suivant :
Le réaffichage du cadre est obtenu en réécrivant la propriété location.href du cadre, en effet cette propriété permet de définir l'adresse du fichier HTML associé au document.