[AJAX] Ajax et window.location.replace
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:
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 ma fonction Ajax listeFctAtt($suffixe) :
Code:
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:
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 mon fichier affEve.php appelé par le précédent script :
Code:
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:
<a href='javascript:window.location.replace(\"http://localhost/psy/transferts/accDoss.php?nb=0\")'>Retour</a>
Merci d'avance pour votre aide.