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