Ci-après un pot pourri de quelques trucs "inventés" au fil des problèmes et autres cahiers des charges...
HTML, concernant les éléments de type ancre ou formulaire, offre la possibilité de circuler dans une page avec la touche tabulation du clavier. Cette possibilité est remarquable pour les personnes handicapées ou ayant une mobilité réduite. Encore faut-il que ces éléments apparaissent dans un ordre logique. Sans parler d'une page en PHP, dont les dits éléments ne sont pas toujours affichés dans le même ordre, ou pas affichés du tout. Voici comment implémenter tabindex :
<? $tabindex = 1; // en début de page ou de section ?> <ul> <li><a href="#" tabindex="<?= $tabindex; $tabindex++;?>">Link1</a> <li><a href="#" tabindex="<?= $tabindex; $tabindex++;?>">Link2</a> <li><a href="#" tabindex="<?= $tabindex; $tabindex++;?>">Link3</a> </ul>
Faut-il signaler qu'un élément dans lequel tabindex est déclaré sera prioritaire sur tout autre élément qui en est exempt. C'est le cas pour le menu de ce site, ci-dessus, pourtant placé en bas de code.
Toute variable passée en URL (query string) ou via un formulaire, doit être récupérée via les variables d'environnement dites superglobales, essentiellement $_GET et $_POST. Pour simplifier on utilise $_REQUEST :
<? // récupération de $id $id = (isset($_REQUEST['id'])) ? $_REQUEST['id'] : 0; if($id) echo "<p>ID vaut : $id</p>"; echo "<p><a href='?id=1'>ID vaut 1</a></p>"; ?> <form action="<?= $_SERVER['PHP_SELF']?>" method="post"> <input name="id"> <input type="submit" value="GO"> </form>
Si l'on souhaite modifier le fond de chaque page sans avoir à le stipuler dans la même feuille de styles (avec des identifiants à chaque <body>), une solution souple existe. A supposer que les paramètres suivants sont identiques, on définit d'abord les styles de base de background dans le fichier styles.css :
/* couleur, position, répétition */ body { background: #ccc 95% 95% fixed no-repeat }
Chargé en toutes pages dans un fichier header.php (qu'on inclut systématiquement) il suffit ensuite d'y déterminer l'image de fond en fonction du nom de fichier, grâce à basename() :
<? // extraction du nom de fichier courant, sans extension $pageName = basename($_SERVER['PHP_SELF'],".php"); // attribution de l'image (et du titre, par la même occasion) switch($pageName) { case 'contact': $imagefond = "images/body-contact.gif"; $title = "Contact"; break; case 'liens': $imagefond = "images/body-liens.gif"; $title = "Liens"; break; default: $imagefond = "images/body-index.gif"; $title = "Accueil"; break; } ?> <html><head> <title><?= $title?></title> <link type="text/css" rel="stylesheet" href="styles.css"> <style type="text/css"> body { background-image: url("<?= $imagefond?>") } </style> </head><body>
Le fichier index.php, par exemple, sera écrit ainsi :
<? include('header.php'); ?> <div>Hello</div> </body></html>
http://dev.ppan.net