Bonjour,

mon problème est le suivant:
Tous les cadres s'actualisent quand un lien est cliqué (situé dans le contenu) alors qu'il ne devrait y avoir que la partie du contenu dynamique, (menu et banniere fixe).

Par contre les liens sont dans le même répertoire que la page principal "index.php" et fonctionnent bien en include.

Le code html de la page principal "index.php":
<body>
<div class="principal">
	<div class="banniere">
		<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase=			  "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="848" 	height="196">
		<param name="movie" value="banniere.swf">
		<param name="quality" value="high">
		<embed src="banniere.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="848" height="196"></embed>
		</object>
	</div>


	<div class="menu">		   
		<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="104" height="329">
		<param name="movie" value="Menu.swf">
		<param name="quality" value="high">
		<embed src="Menu.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="104" height="329"></embed>
		</object>
		 <p><a href="index.php?page=images">images test</a></p>
	</div>


 	<div class="contenu">

<?php
if (!isset($_GET['page'])) $page= 'news'; else $page= $_GET['page']; 
 switch($page)
{
case 'news': include ('a-news/news.php3');break;
case 'fanart': include ('fanart.htm');break;
case 'presentation': include ('presentation.htm');break;
case 'persos':include ('persos.htm');break;
case 'fonds':include ('fonds.htm');break;
case 'ost':include ('ost.htm');break;
case 'videos':include ('videos.htm');break;
case 'amvs':include ('amvs.htm');break;
case 'episodes':include ('episodes.htm');break;
case 'scans':include ('scans.htm');break;
case 'images':include ('images.htm');break;
case 'recettes':include ('recettes.htm');break;
case 'japonai':include ('japonai.htm');break;
case 'staff':include ('staff.htm');break;
} 
?>


	
	<div class="clear"></div>
 	</div>


</div></body>


Le code CSS:
body {
margin: 0px;
background: url('1.jpg') repeat-x;
width: 980px;
position: absolute;
color: #000000
}
a {
text-decoration: none;
}
a:link {
color: #FFCC99;
text-decoration: none;
}
a:visited {
color: #FFCC99;
text-decoration: none;
}
a:active {
color: #FFCC99;
text-decoration: none;
}
a:hover {
color: #969696;
text-decoration: none;
}
* html .principal { 
border-top: 0px none; 
margin: 0 auto; 
top: 0; 
background: url('1.jpg') repeat-x; 
width: 980px 
}
.principal { 
border-top: 0px; 
margin: 0 auto; 
top: 0;  
width: 980px; 
}
.banniere {
top: 0px;
left:10px;
width:848px ;
height:196px;
background: url('1.jpg') repeat-x;
position: absolute;
}
.menu {
height:340px;
width: 119px;
top: 196px;
left: 10px;
position: absolute;
}
.liens {
left:858px;
top: 50px;
width:132px ;
height:100%px;
text-align:center;
position: absolute;
color: #000000; 
text-align: center;
font-family: verdana, tahoma, arial, sans-serif; 
font-size: 9px; 
font-style:italic;
}
.bas {
top: 990px;
left:115px;
width: 735px;
height: 20px;
margin-left: 0px; 
margin-right: 0px;  
margin-top:5px; 
color: #FFFFFF; 
text-align: center;
font-family: verdana, tahoma, arial, sans-serif; 
font-size: 9px; 
font-style:italic;
position: absolute;
}
.contenu { 
background:url('contenu.gif');
margin-left: 0px; 
margin-right: 15px; 
top: 196px;
left:123px;
width: 735px;
height: 794px;
color: #000000; 
font-family: verdana, tahoma, arial, sans-serif; 
font-size: 11px; 
overflow:auto;
position: absolute;
}
h3 {
padding: 6px;
margin-top:10px;
margin-left:10px;
}
.contenu h3 {
font-family: verdana, tahoma, arial, sans-serif;
color: #000000;
font-size: 11px;
font-weight: solid;
font-style: italic;
text-transform: none;
text-align: left;
width:338px;
height:14px;
background-image:url('h3.gif');
}
t {
padding: 6px;
margin-top:10px;
margin-left: 15px;
}
.contenu t {
font-family: verdana, tahoma, arial, sans-serif;
color: #CC6600;
font-size: 23px;
font-weight: bold;
font-style: normal;
text-transform: none;
text-align: left;
}
p {
margin-bottom: 28px;
margin-top:15px;
}
.contenu p {
font-family: verdana, tahoma, arial, sans-serif;
color: #000000;
font-size: 11px;
font-weight: normal;
font-style: normal;
text-transform: none;
text-align: left;
line-height: 100%;
margin-left: 15px;
margin-right: 20px;
}


Mon hypothèse est que j'ai peut-être mal intégré la partie "flash" mais j'ai fait le test avec un menu classique en css et toujours le même problème.

Je ne sais vraiment pas où est l'erreur Smiley decu , avez vous des solutions pour
obtenir une partie dynamique seulement sur le contenu?
Modifié par kimimaro (08 Apr 2006 - 15:50)
C'est tout à fait normal il me semble...

Le seul moyen d'avoir une portion de page dynamique et pas de rechargement des autres parties c'est soit une Iframe, soit des frames, les deux étant plutot déconseillés...

Ceci dit, les parties statiques sont plutot légères en général, et le cache fait que leur rechargement devient vite tout à fait anecdotique.
Modifié par Freedom_09 (08 Apr 2006 - 15:58)
Freedom_09 a écrit :

Ceci dit, les parties statiques sont plutot légères en général, et le cache fait que leur rechargement devient vite tout à fait anecdotique.


Et non, la notion de cache n'intervient pas du tout dans le cas des include php. sont mis en cache les pages :

. page.php
. page.php&choix=1
. page.php&choix=2
. etc...

avec tout le poids que représente le code html visible dans le code source. il n'y a aucune différence pour un navigateur de ce point de vue avec :

. page1.html
. page2.html
. etc...

Quand bien même l'include par défaut serait la même que choix 1, ce serait bien deux pages différentes (avec le même code et le même poids) qui seraient chargées, mises en cache, intégrées à l'historique etc...

Et pour cause puisque pour le navigateur ce qui fait qu'il y a deux pages c'est le fait qu'il y a deux noms différents.

page.php
et
page.php&choix=1

c'est la première chose à savoir avant d'utiliser l'include php surtout en mode conditionnel avec cette si séduisante perspective des pseudo frame avec lesquelles php n'a strictement rien à voir..
Modifié par clb56 (08 Apr 2006 - 16:30)
merci pour vos infos mais il y a une chose que je ne comprend pas (je débute en php), pourquoi les frames et iframes sont déconseillés??
kimimaro a écrit :
et l'HTTP request ça fontionne comment? du php et javascript?


C'est à base de JavaScript oui (donc pas sûr car désactivable)

Tu as différentes discussion sur le sujet sur le forum.

Mais poses toi bien cette question :
Est-ce vraiment utile, à part un chargement de page de moins, qu'est ce que ça apporte à l'utilisateur ?

Parceque se compliquer la vie pour pratiquement rien, c'est dommage ! surtout quand ça rend l'appli plus complexe.
Modifié par Olivier (08 Apr 2006 - 17:16)
Ba plutôt que de te barrer là dedans je t'invites plutôt à méditer l'assertion suivante :

a écrit :

Le fait qu'à chaque appel de page une nouvelle page complète doive être chargée n'a absolument aucune importance et ne pose aucun problème.


Ce point étant acquis ça te libèrera l'esprit pour apprendre tranquillement les bases du php (je trouve que le site du zero est très bien pour ce genre d'initiation).

<edit>
Pensée du jour :
Le jour où je serai capable d'écrire vite je serai plus grilled comme un poisson frit Smiley biggol
</edit>
Modifié par clb56 (08 Apr 2006 - 17:25)
Après plusieurs test j'ai découvert que ce phénomène ne se produit que sur Firefox (testé avec la version 1.501).
Sur Internet Explorer et Opera il n'y a que la partie centrale qui s'actualise.

J'ai trouvé le plugin FasterFox qui améliore le cache de firefox ainsi il n'y a que la page centrale qui devient dynamique.

Enfin c'est une solution comme une autre mais qui impose plus à l'utilisateur. Smiley smile
Modifié par kimimaro (09 Apr 2006 - 15:03)
Salut Kimimaro,

Tes impressions te trompent. Les seules choses qui se rechargeront pas, c'est ce qui est en cache : images, fichiers .css, .js etc..
Ce n'est le navigateur qui gère l'include, cela se passe coté serveur. C'est impossible ne n'avoir que la partie centrale qui s'actualise.
clb56 >> mea culpa, c'est bien ce que je voulais dire, mais dit de manière trop optimiste...

Enfin ceci dit le résultat est le même, puisqu'on se moque de recharger la page (dans une certaine mesure en tout cas)