Exercice — dans l'esprit des sujets du bac
La médiathèque du lycée Ibn Rochd veut un mini-site pour gérer les prêts. On travaille sous EasyPHP (dossier de travail dans `www`). Les pages demandées sont en HTML d’examen (cadres + formulaires).
- Écrire le code de la page `accueil.html` : un `frameset` en deux lignes (`80,*`). Le cadre haut (`name="menu"`) charge `nav.html` ; le cadre bas (`name="contenu"`) est initialement vide.
- Écrire `nav.html` avec deux liens en bleu souligné : « Nouveau prêt » → `pret.html` et « Chercher un adhérent » → `recherche.html`, tous deux ouvrant dans le cadre `contenu` (`target`).
- Écrire `pret.html` : formulaire `name="fp"`, `action="enregistrer.php"`, `method="post"`, `onsubmit="return verifPret()"`, cible `contenu`. Champs texte `name="numAdh"` (n° adhérent), `name="codeOuv"` (code ouvrage), liste `select name="typePret"` avec options `jour` / `semaine`, boutons submit « Valider le prêt » et reset « Effacer ».
Voir la correction commentéeAprès avoir posé votre démarche
1. Structure HTML — `accueil.html` (cadres). Syntaxe d’examen héritée (`frameset` / `frame`) :
```html
<html><head><title>Médiathèque</title></head>
<frameset rows="80,*">
<frame name="menu" src="nav.html" scrolling="auto" frameborder="1">
<frame name="contenu" src="" scrolling="auto" frameborder="1">
</frameset>
</html>
```
2. Liens avec `target` — `nav.html`.
```html
<html><head><title>Navigation</title></head>
<body>
<a href="pret.html" target="contenu">Nouveau prêt</a>
<a href="recherche.html" target="contenu">Chercher un adhérent</a>
</body></html>
```
3. Formulaire HTML — `pret.html`. `name`, `action`, `method="post"`, `onsubmit`, champs nommés :
```html
<html><head><title>Prêt</title>
<script src="controles.js"></script></head>
<body>
<form name="fp" action="enregistrer.php" method="post" target="contenu" onsubmit="return verifPret()">
N° adhérent : <input type="text" name="numAdh" size="10"><br>
Code ouvrage : <input type="text" name="codeOuv" size="10"><br>
Type de prêt :
<select name="typePret" size="2">
<option value="jour">jour</option>
<option value="semaine">semaine</option>
</select><br>
<input type="submit" name="bOk" value="Valider le prêt">
<input type="reset" name="bAnn" value="Effacer">
</form>
</body></html>
```
Legacy d’examen. `frameset` / `frame` et l’absence de HTML5 sémantique sont la syntaxe attestée des devoirs machine SI 2010s (EasyPHP). En production moderne on utiliserait une mise en page CSS et des formulaires accessibles — ce n’est pas ce que le barème TIC note ici.