Bonjour,

Je rencontre un probl�me avec l'utilisation de la fonction window.location.replace() suite � une mise � jour du contenu d'un div avec de l'Ajax.

Je m'explique : j'affiche une interface appel�e dossier.inc (fichier qui est pass� en param�tre � ma classe CInterface, mais cela n' a pas d'importance). Ce fichier contient plusieurs div dont, lors du premier affichage, le diplay est � none. Sur le onclick d'une image, je passe le display du div concern� � block et y affiche de l'information contenant elle-m�me des liens vers d'autres interfaces.

Lorsque je clique sur un de ces liens, j'affiche alors l'interface concern�e qui contient elle-m�me un lien appel� "Retour" dans lequel j'utilise la fonction javaScript window.location.replace(). Cette fonction me permet bien de r�afficher le fichier "dossier.inc" mais (�videmment car recharge l'interface) avec tous les div avec le display � none.

Comment faire pour que les div dont j'ai pass� le display � block reste affich�s lorsque je r�affiche l'interface "dossier.inc"? Impossible d'utiliser history.back � cause des variables de session.

Voici ce que donne le code :

- dans "dossier.inc" :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
echo "<div  class='floatLeft7'>&nbsp;</div>
      <div class='floatLeft5'>&nbsp;</div>
      <div class='floatLeft5' id='boutonAtt$suffixe'><img src='../images/plus.gif' border='0' align='middle' onclick='listeFctAtt($suffixe);'></div>
      <div class='floatLeft40' align='left'>Fonctions attentionnelles</div>
      <div class='floatLeft25'>&nbsp;</div>
      <div class='floatLeft10'>&nbsp;</div>
      <div class='floatLeft7'>&nbsp;</div>
      <div id='divAttention$suffixe' style=\"display='block';\"></div>";
- dans ma fonction Ajax listeFctAtt($suffixe) :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function listeFctAtt(suffixe)
 {
  {
   xhrListeFctAtt=getXhr();
   xhrListeFctAtt.onreadystatechange = function()
    {
     if(xhrListeFctAtt.readyState == 4 && xhrListeFctAtt.status == 200)
      {
       document.getElementById("divAttention" + suffixe).innerHTML = xhrListeFctAtt.responseText;
       document.getElementById("boutonAtt" + suffixe).innerHTML = "<img src='../images/moins.gif' border='0' align='middle' onclick='videFctAtt(" + suffixe + ")'>";
       document.getElementById("divAttention" + suffixe).style.display = 'block';
      }
    }
   xhrListeFctAtt.open("POST",'../transferts/majDossier/listeFctAtt.php',true);
   xhrListeFctAtt.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
 
   xhrListeFctAtt.send("suffixe=" + suffixe);
  }
 }
-dans mon fichier listeFctAtt.php appel� par ma fonction

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
session_start();
header('Content-Type: text/html; charset=utf-8');
require("../../fichiersInclusion/classes.php");
$suffixe = $_POST['suffixe'];
 
$tabAttention = unserialize($_SESSION["tabAttention$suffixe"]);
$nb = count($tabAttention);
 
for($cpt = 0; $cpt < $nb; $cpt++)
 {
   $tabDonnees = $tabAttention[$cpt]->getAll();
   
   echo "<div  class='floatLeft7'>&nbsp;</div>
      <div class='floatLeft5'></div>
      <div class='floatLeft10'>&nbsp;</div>
      <div class='floatLeft25'><img src='" . $tabDonnees['icone'] . "' border='0' align='middle'>&nbsp;&nbsp;&nbsp;" . $tabDonnees['dateEve'] . "</div>
      <div class='floatLeft25' onDblClick=\"window.location.href='../transferts/affEve.php?tableau=tabAttention$suffixe&index=$cpt'\">" . $tabDonnees['titre'] . "</div>     
      <div class='floatLeft27'>" . $tabDonnees['prestataire']. "</div>";
 }
?>
- dans mon fichier affEve.php appel� par le pr�c�dent script :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
require("../fichiersInclusion/classes.php");
session_start();
 
if(isset($_GET['nbPere']) && isset($_SESSION['tabObj']))
 {
  $nbPere = $_GET['nbPere'];
  $tabObj = unserialize($_SESSION['tabObj']);
  $obj = $tabObj[$nbPere][0];
 }
elseif(isset($_GET['tableau']) && isset($_GET['index']))
 {
  $tableau = $_GET['tableau'];
  $index = $_GET['index'];
  $tab = unserialize($_SESSION[$tableau]);
  $obj = $tab[$index];
 }
 
 
$_SESSION['objet'] = $obj;
 
$interface = new CInterface($obj->getTitre(), $obj->getFichier(), 1, "");
$interface->getHeader();
$interface->getLogo();
$interface->getTitre();
$interface->getMenu();
$interface->getContenu();
$interface->getSignature();
 
?>
- dans ma classe d'interface CInterface :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
<a href='javascript:window.location.replace(\"http://localhost/psy/transferts/accDoss.php?nb=0\")'>Retour</a>
Merci d'avance pour votre aide.