[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.