8797 sujets

Développement web côté serveur, CMS

Bonjour


j'ai réalisé un site avec 3 div.
celle du haut avec le menu + bandeau flash, une au milieu pour le contenu et une en pied avec aussi une anim flash.
Mon problème, c'est qu'à chaque changement de rubrique, le bandeau flash se recharge et repart au début.
j'utilise comme méthode une fonction php include.
Comment faire pour ne recharger que la div centrale de ma page?


voici le liens vers le site en test : http://jambette.free.fr/delphis/index2.php

merci d'avance pour vos réponses

Benoît

voici le code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>delphis</title>
<style type="text/css">

    <!--

    body {
	background: #666666;
	margin: 0; /* il est conseillé de mettre à zéro la marge et le remplissage de l'élément body, pour tenir compte des différentes valeurs par défaut des navigateurs */
	padding: 0;
	text-align: center; /* ce paramétrage centre le conteneur dans les navigateurs IE 5.x. Le texte est ensuite aligné à gauche (valeur par défaut) dans le sélecteur #container */
	color: #000000;
	background-color: #47292A;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 100%;
    }
a:link {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-style: normal;
	color: #D28E04;
	text-decoration: none;
}
a:visited {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-style: normal;
	color: #47292A;
	text-decoration: none;
}
a:hover {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-style: normal;
	color: #D38E05;
	text-decoration: none;
}

    .oneColLiqCtrHdr #container {
	width: 100%;  /* ce paramétrage crée un conteneur dont la largeur est 80 % de celle du navigateur */
	background: #FFFFFF; /* les marges automatiques (et dotées d'une largeur positive) centrent la page */
	border: 0px solid #000000;
	text-align: left; /* ce paramétrage annule le paramètre text-align: center de l'élément body. */
	margin-top: 0;
	margin-right: auto;
	margin-bottom: 0;
	margin-left: auto;
    }

    .oneColLiqCtrHdr #header {
	padding-top: 0;
	padding-right: 0px;
	padding-bottom: 0;
	padding-left: 0px;
	background-color: #FFFFFF;
    }

    .oneColLiqCtrHdr #header h1 {
	margin: 0; /* l'utilisation de remplissage, au lieu d'une marge, permet d'éloigner l'élément des bords de l'élément div */
	padding-top: 0px;
	padding-right: 0;
	padding-bottom: 0px;
	padding-left: 0;
    }

    .oneColLiqCtrHdr #mainContent {
	padding: 0 20px; /* ne pas oublier que le remplissage est l'espace à l'intérieur du cadre de l'élément div, alors que la marge est l'espace à l'extérieur de celui-ci */
	background: #FFFFFF;
	font-family: Verdana, Arial, Helvetica, sans-serif;
	font-size: 10px;
	color: #333333;
    }

    .oneColLiqCtrHdr #footer {
	padding-top: 0;
	padding-right: 0px;
	padding-bottom: 0;
	padding-left: 0px;
	height: 38px;
	background-color: #DDDDDD;
	background-position: bottom;
    } 

    .oneColLiqCtrHdr #footer p {
	margin: 0; /* l'utilisation d'un remplissage pour cet élément crée un espace, tout comme une marge l'aurait fait, mais en évitant le risque de disparition de la marge */
	padding-top: 0px;
	padding-right: 0;
	padding-bottom: 0px;
	padding-left: 0;
    }
.Style1 {color: #47292A}
.menu {	position: fixed;
	font-family: Arial, Helvetica, sans-serif;
	font-size: 11px;
}

    -->

    </style>
<script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<script type="text/javascript">
<!--
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
</head>

<body class="oneColLiqCtrHdr">
<?php
#
    // On inclue le haut de la page
#
    include("haut.php");
#?>

<div id="container">

      <div id="header">
    
      <tr>
    <td bgcolor="#FFFFFF"><img src="medias/blanc_haut_gauche.gif" alt="blanc delphis" width="52" height="39" /><a href=""><img src="medias/btn_acceuil.jpg" alt="accueil" name="accueil delphis" width="130" height="39" border="0" id="accueil delphis" /></a><a href="?page=2" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('prepresse','','medias/btn-prepresse_r.jpg',1)"><img src="medias/btn-prepresse.jpg" alt="prepresse" name="prepresse" width="130" height="39" border="0" id="prepresse" /></a><a href="?page=3" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('impression','','medias/btn-impression_r.jpg',1)"><img src="medias/btn-impression.jpg" alt="impression" name="impression" width="130" height="39" border="0" id="impression" /></a><a href=""><img src="medias/btn-logistique.jpg" alt="logistique" name="logistique" width="130" height="39" border="0" id="logistique" /></a><img src="medias/blanc_haut_droit.gif" alt="blanc delphis" width="262" height="39" /><a href=""><img src="medias/btn-contact.jpg" alt="contact" name="contact" width="132" height="39" border="0" id="contact" /></a></td>
  </tr>
        <!-- fin de #header -->
        <br />
  </div>
<div id="mainContent">
      <?
$page = $_GET['page'];
if ($page=='1') {
    include('accueil.html');
} elseif ($page=='2') {
    include('prepresse.html');
} elseif ($page=='3') {
    include('impression.html');
} elseif ($page=='4') {
    include('logistique.html');
}elseif ($page=='5') {
    include('industrie.html');
}elseif ($page=='6') {
    include('liens.html');
} elseif ($page=='7') {
    include('contact.html');
} elseif ($page=='8') {
    include('finitions.html');
} elseif ($page=='9') {
    include('logistique_promotion.html');
} elseif ($page=='10') {
    include('logistique_marketing.html');
	} elseif ($page=='11') {
    include('stockage.html');
} else {
    include('accueil.html');
} 
?>
  <!-- fin de #mainContent --></div>

<div id="footer">

        <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#47292A">
          <tr>
            <td><script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','500','height','38','title','references delphis','src','medias/texte','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','medias/texte' ); //end AC code
            </script>
                <noscript>
                <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="500" height="38" title="references delphis">
                  <param name="movie" value="medias/texte.swf" />
                  <param name="quality" value="high" />
                  <embed src="medias/texte.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="500" height="38"></embed>
                </object>
                </noscript>
            </td>
            <td><div align="right"><img src="medias/bas.jpg" alt="bas delphis" width="540" height="38" /></div></td>
          </tr>
        </table>
        <p>&nbsp;</p>

  <!-- fin de #footer --></div>

<!-- fin de #container --></div>

</body>
</html>
[/i][/i]
tu es sur d'avoir mis un stop a ton anim flash ? j'ai l'impression qu'elle tourne en boucle
oui, elle tourne en boucle, c normal.
c'est l'habillage du site qui est fait ainsi.
mais si j'avais un stop, ça n'arrangerait pas mon histoire de rafraichissement.
Salut,

en général on mets plutot le flash dans une frame a part. comme ça tu peux rafraichir tout le reste sauf la frame ( ou iframe).

ça peut impliquer des pbs eventuels de recouvrement. notamment j'ai eu le cas d'un menu déroulant passant au dessus d'une iframe qui buggait sous FF.

sinon pour rafraichir juste un div avec de l'ajax peut-être.

peut-être avec du javascript? avec la propriété innerHTML du div....

mais a mon avis Ajax.

avec php seul c'est pas possible car c'est une technologie coté serveur pas client.

enfin je crois.

pascal
Modifié par CPascal (29 Dec 2007 - 23:45)
Modérateur
Salut,

C'est effectivement par Ajax ou un frameset qu'on peut résoudre ce "problème".

Ceci dit, cette demande est courante de la part du développeur et/ou du client alors que l'utilisateur n'en a, pour ainsi dire, que faire... Il faut quand même préciser que ces deux solutions posent de gros problèmes d'accessibilité et obligent à des traitements lourds... très lourds pour cette simple réactualisation de l'animation. Franchement, à moins d'avoir un cahier des charges drastique ou de choisir délibérément de nuire à l'utilisabilité du site, ça n'en vaut pas la peine... ne serait-ce que pour le retour sur investissement que ça représente.

Si malgré tout, tu choisis de faire une usine à gaz, le recours à une bibliothèque JS avec l'ajout d'un module "historique/bookmark" (afin de conserver un mode de navigation normal) peut te simplifier la tache.
bon...
je vais peut-être de voir si ça passe dans l'état des choses pour mon client.
on verra pour l'ajax s'il me fait la remarque et que ça le gène.
Merci pour ton conseil Koala64.
Modérateur
Une autre solution serait aussi de faire le site tout en Flash... mais, là encore, tu poseras plus de problèmes que tu n'en résoudras.

Pour être plus précis, je te dirais qu'un bon site est avant tout un site orienté utilisateur. Smiley smile

Ce dernier ne va pas fuir parce qu'une animation se recharge mais plutôt parce qu'il ne peut pas profiter des fonctionnalités de base de son navigateur.

Ce qui lui importe, c'est le contenu/service que tu lui offres et non les froufrous qui sont autour. Si la navigation est claire, qu'il accède facilement à l'information recherchée et qu'il comprend aisément comment fonctionne le site et ce qu'il se passe à chacune de ses actions, alors, tu as bien plus de chances de le satisfaire... d'autant plus si tu sais mettre tout celà en valeur.

Quitte à faire des compromis, autant ne pas se planter d'objectif. Smiley cligne