Bonjour,

Avant toute chose, je précise que je suis débutant en php, mais que je suis là pour apprendre... Il se peut que mes questions soient "naives" ou que mon vocabulaire technique ne soit pas tout à fait correct Smiley cligne

Je réalise actuellement un site web avec les contraintes suivantes :

- une page index.php utilisant la fonction include() et mise en forme avec du CSS découpée en différents div :

!-------------------------------------------------------!
! div header !
!-------------------------------------------------------!
! div menu gauche ! div menu droite !
!-------------------------------------------------------!
! ! !
! div colonne gauche ! div colonne droite !
! ! !
! ! !
! ! !
!-------------------------------------------------------!
! div footer !
!-------------------------------------------------------!

- les div header, menu gauche, menu droite et footer ne changent pas, quelque soit la rubrique dans laquelle l'utilisateur se trouve. Seuls les div colonne gauche et colonne droite voient leur contenu évoluer en fonction des rubriques du menu. L'idée étant d'avoir un design qui ne se recharge pas à chaque fois que l'utilisateur change de rubrique.

- j'utilise donc ensuite la fonction include() pour faire apparaitre le contenu des div header, menu gauche, menu droite et footer.Jusque là, pas de problème, tout fonctionne comme je le souhaite.

Ce qui me pose problème, c'est d'insérer le contenu des div colonne gauche et colonne droite à partir du div menu gauche :

- quand on clique sur Menu gauche 1, on ouvre la page 1 dans colonne gauche et page 2 dans colonne droite.
- quand on clique sur Menu gauche 2, on ouvre la page 3 dans colonne gauche et page 4 dans colonne droite.
etc...

Je réussis à ouvrir le contenu de la colonne gauche à partir du menu gauche sans problème en utilisant le code suivant :

<?php
define("PATH", "./include_fr/");
$tableau = glob(PATH . "*.php");
if (isset($_GET["page"]) && in_array(PATH . $_GET["page"] . ".php", $tableau)) {
$pageInclude = PATH . $_GET["page"] . ".php";
}
else {
$pageInclude = PATH . "actu.php";
}
include $pageInclude;
?>


mais je ne vois pas comment faire pour le contenu de la colonne droite Smiley ohwell et après une journée de recherche sur le net, je n'ai pas trouvé de réponses à mon problème. Je me demande donc si c'est possible de le faire, ou si je dois chercher du côté d'une solution alternative. Je me tourne donc vers la communauté d'AlsaCréations pour savoir s'il existe une solution. Merci d'avance pour votre aide, en espérant avoir été assez clair.

Cordialement,
Greg

Si ça peut aider, ci-joint le code CSS :

* { padding: 0; margin: 0; }

body { font-family: arial;
       font-size: 10pt;
       background-color: #FFFFFF;
       }

#global { margin: 0 auto;
 	  width: 1024px;
 	  height: 768px;
 	  background-image: url(Images/test_interface-2FR.jpg);
          background-repeat: no-repeat;
	  }

#header { float: left;
	  width: 1004px;
 	  height: 82px;
	  padding: 10px;
 	  margin: 0px 0px 0px 0px;
	  }

#menugauche { float: left;
 	      width: 622px;
	      padding: 0;
	      margin: 0px 0px 0px 0px;
	      }

#menudroite { float: right;
	      position: relative;
 	      width: 402px;
	      padding: 0;
	      margin: 0px 0px 0px 0px;
	      display: inline;
	      }

#colonnegauche { float: left;
	         width: 630px;
	         height: auto;
	         color: #000000;
	         padding: 30px 0px 0px 120px;
	         margin: 0px 0px 0px 0px;
		 text-align: justify;
	         display: inline;
	         }

#colonnedroite { float: right;
	         position: relative;
	         width: 250px;
	         height: 580px;
	         color: #333;
	         padding: 10px;
	         margin: 0px 0px 0px 0px;
	         display: inline;
	         }


#footer { float: left;
	  width: 1024px;
 	  height: 62px;
	  padding: 0px;
 	  margin: 0px 0px 0px 0px;
	  text-align: center;
	  font-family: arial;
	  font-size: 8pt;
	  color: #4A4A4A;
	  }


Et le code de la page index :

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="style_fr.css" rel="stylesheet" type="text/css">
<link href="menu.css" rel="stylesheet" type="text/css">
<link href="imagemap.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="Javascript/menu.js"></script>
</head>
<body>
<div id="global">
<div id="header"></div>
<div id="menugauche"><?php include ("Include_fr/menu.php"); ?></div>
<div id="menudroite"><?php include ("Include_fr/imagemap.php"); ?></div>

<div id="colonnegauche">
<?php
define("PATH", "./include_fr/");
$tableau = glob(PATH . "*.php");
if (isset($_GET["page"]) && in_array(PATH . $_GET["page"] . ".php", $tableau)) {
$pageInclude = PATH . $_GET["page"] . ".php";
}
else {
$pageInclude = PATH . "actu.php";
}
include $pageInclude;
?>
</div>

<div id="colonnedroite"></div>

<div id="footer"><?php include ("Include_fr/footer.php"); ?></div>
</div>
</body>
</html>

Modifié par judgegregg (27 Aug 2010 - 12:08)
Modérateur
Bonjour,

judgegregg a écrit :
L'idée étant d'avoir un design qui ne se recharge pas à chaque fois que l'utilisateur change de rubrique.


Une précision s'impose sur le fonctionnement des includes. Lorsqu'un utilisateur se rend sur une page particulière, le serveur construit la page avec les différents includes et retourne le résultat final à l'utilisateur. Ce que reçoit l'utilisateur n'est nul autre qu'une seule et unique page. S'il se rend sur une autre page (une autre rubrique), le serveur va à nouveau construire la page avec les différents includes et retourner le résultat final à l'utilisateur. Bref, en aucun cas les includes empêchent le rechargement de la page ou de certaines parties de la page.

En savoir plus

D'ailleurs, l'appellation pseudo-frame était une mauvaise idée. Ça porte à confusion encore davantage et ça, ce n'est pas de ta faute, plusieurs tutoriaux utilisent ce terme. Smiley cligne