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" :
- dans ma fonction Ajax listeFctAtt($suffixe) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 echo "<div class='floatLeft7'> </div> <div class='floatLeft5'> </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'> </div> <div class='floatLeft10'> </div> <div class='floatLeft7'> </div> <div id='divAttention$suffixe' style=\"display='block';\"></div>";
-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 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 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 <?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'> </div> <div class='floatLeft5'></div> <div class='floatLeft10'> </div> <div class='floatLeft25'><img src='" . $tabDonnees['icone'] . "' border='0' align='middle'> " . $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 ma classe d'interface CInterface :
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(); ?>
Merci d'avance pour votre aide.
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>
Partager