Bonjour
J'ai suivi le tuto php pour créer une page avec un menu gauche et les pages appelées au centre.
Comment faire lorsque la page incluse appelle elle -même d'autres pages. Pour l'instant celles-ci s'ouvrent dans une nouvelle fenêtre.
Merci
Ca dépend ce que tu entends par appeler elle-même une autre page.

En php, il n'y aucune limite à faire des include dans des pages elles-mêmes includées, à autant de niveaux et sous-niveaux que tu veux tant qu'il y a des réserves de mémoire suffisantes.

Si tu parles de popup ou de fausses popup, il va falloir détailler tes intentions.
J'ai dans le div central une page avec un lien sur une autre page.
Ma question est donc ; est-ce que ce lien peut aussi s'afficher dans le div central, donc en ayant toujours le menu à gauche.
merci
Je suis allé voir sur le site de QuentinC et c'est ce type de page que je veux mettre en oeuvre.
Pour préciser les choses : quel type de lien faut-il mettre sur les pages comprises dans le "conteneur" ?
D'autre part, cela fonctionne-t-il avec les pages dynamques faisant appelà une base mysql.
Merci
Salut,

Pour répondre à ta question, il s'agit d'indiquer dans les pages apparaissant dans le "conteneur" des url 'absolues'.
Ce que j'entends par 'absolue' est simplement une url qui prends en compte la racine du site.
Cela t'évitera de mauvaise surprises... Car comme tu le sais, l'url d'une page change lorsque l'on l'appelle depuis la racine du site, depuis un répertoire ou depuis un sous-répertoire.

La forme d'un tel lien est la suivante :
/chemin_accès/page_visée.htm

L'anti-slash en début de lien indique au navigateur que tu pars de la racine du site. Après, il ne te rete plus qu'à indiquer le chemin à travers ton site (depuis la racine)jusqu'à la page concernée.

Cette solution fonctionne également avec les pages dynamiques, je tiens seulement à préciser que cette méthode est inefficace lors d'un include.
Si tu inclus une page en php, ton chemin vers le fichier devra être écrit depuis le répertoire de la page contenant l'include en question.

Voilà,
J'espère que j'ai été suffisament claire Smiley cligne
Modifié par Cygnus (03 Aug 2006 - 11:50)
Ok pour cela mais je pense que mon pb de destination de la page n'est pas résolu.
Celle-ci s'affiche dans une nouvelle fenêtre et non dans le calque conteneur.
Merci
Pour avoir vu de nouvelles pages de ce type, une question me vieny à l'esprit : faut-il mettre le menu dans toutes les pages ?
Merci
Non, il ne faut pas mettre le menu dans toutes les pages : c'est bien le but de l'include !

Bon, un petit exemple vaudra mieux qu'un long discours. Voici, en gros résumé, la structure des pages de mon site :


[b]header.php[/b]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head<
<title><?php echo $titre; ?></title>
...

[b]menu.php[/b]
</head>
<body>
<div id="conteneur">
<h1>Le coin web de QuentinC</h1>
<div id="menu">
<h2>Menu</h2>
<ul>
<li><a href="......">......</a></li>
<li><a href="......">......</a></li>
</ul>
<h3>.......</h3>
<ul>
<li><a href="......">......</a></li>
<li><a href="......">......</a></li>
</ul>
......
</div>
<div id="contenu">
<p><?php echo $fileAriane; ?></p>
<h2><?php echo $titre; ?></h2>

[b]footer.php[/b]
</div>
<div id="footer">
<p> ... Copyright ... </p>
</body></html>

[b]foobar.php[/b]
<?php
$titre = "Ma jolie page";
include("header.php");
include("menu.php");
?>
<p> bla bla bla bla bla mon contenu bla bla bla bla bla </p>
<p> bla bla bla bla bla mon contenu bla bla bla bla bla </p>
<p> bla bla bla bla bla mon contenu bla bla bla bla bla </p>
<?php inclute("footer.php"); ?>


IL suffit donc d'utiliser l'instruction include pour placer automatiquement ton menu à l'endroit souhaité. En bref, l'instruction include("nomfichier.php"); est remplacée automatiquement par le contenu du fichier indiqué, sans créer d'autre page, il est directement inséré dans le code comme si tu avais fait un copier-coller.

Maintenant pour la gestion des répertoires, il est conseillé d'utiliser des chemins partant de la racine du site (c-à-d. en commençant par un / qui au passage n'est pas un antislash mais bien un slash) pour la simple et bonne raison que le navigateur prend comme référence la page appelée et non pas celle où se trouve ton menu (en réalité, le navigateur ignore complètement l'existance de la page contenant ton menu car il reçoit une seule et unique page, conformément à ce qui a été dit plus haut : l'instruction include est remplacée par le contenu du fichier à inclure, l'instruction en elle-même n'existe plus, et le navigateur reçoit donc un seul fichier en un seul tenant. C'est pour cette raison qu'il ne faut pas répéter <html>, <head>, etc. dans les fichiers inclus).

Je vais terminer mon roman par "bon courage". Je ne pourrai pas répondre durant les 7 jours qui suivent (cf signature).
Merci
Je voulais dire faire un include du fichier menu.php dans toutes les pages. Toutes les pages ont donc une même mise en forme (calques).
Bonnes vacances