[AJAX] Variable de session non modifiée
Bonjour,
Dans un premier formulaire Php, nommé "types.inc", j'ai une date automatiquement initialisée avec la date contenue dans l'objet passé en variable de session :
Code:
$dateEve = $_SESSION['objet']->getDateEve();
J'ai la possibilité de modifier cette date dans le formulaire.
Si je la modifie et que je j'enregistre directement le formulaire, pas de problème, la date est modifiée. Par contre, si je modifie la date dans le formulaire "types.inc" et que je cliques sur un hyperlien pour me rendre dans un autre formulaire en enregistrant préalablement les données du formulaire, c'est la date initiale qui est reprise au lieu de la date modifiée, alors que je mets bien ma variable de session à jour :
Dans mon script "types.inc", voici l'hyperlien :
Code:
onclick=\"enregiTypesRey(); window.location.href='../interfaces/interface.php?fichier=../fichiersInclusion/rey/zones.inc&titre=Figure de Rey&popup=1';\">Zones</a>
Dans ma fonction Ajax "enregiTypesRey()" :
Code:
1 2 3 4 5 6 7 8 9 10 11
| ...
xhrEnregiTypesRey.open("POST",'../transferts/rey/enregiTypesRey.php',true);
...
jour = document.getElementById('jour');
jourEve = jour.options[jour.selectedIndex].value;
mois = document.getElementById('mois') ;
moisEve = mois.options[mois.selectedIndex].value;
annee = document.getElementById('annee');
anneeEve = annee.options[annee.selectedIndex].value;
...
xhrEnregiTypesRey.send("id=" + id + "&idPrinc=" + idPrinc + "&jourEve=" + jourEve + "&moisEve=" + moisEve + "&anneeEve=" + anneeEve ... |
Dans mon fichier "enregiTypesRey.php" :
Code:
1 2 3 4 5 6 7 8 9 10
| ...
$obj = unserialize($_SESSION['eve']);
...
$tab['dateEve'] = $_POST['anneeEve'] . "-" . $_POST['moisEve'] . "-" . $_POST['jourEve'];
$obj->setDateEve($tab['dateEve']); //Pour éviter les problèmes de date avec l'interface zones
...
unset($_SESSION['eve']);//Car problème de mise à jour de la date dans la session
$_SESSION['eve'] = serialize($obj); //Pour éviter les problèmes de date avec l'interface zones |
Dans ma méthode "setDateEve" :
Code:
1 2 3 4 5 6 7 8 9 10
| public function setDateEve($dateEve)
{
$this->dateEve = $dateEve;
//Ajouté 4 lignes suivantes car problème d'enregistrement de la date dans le test Figure de Rey
$tab['dateEve'] = $dateEve;
$tab['idObj'] = $this->id;
$transaction = CtransactionsBdd::GetInstance("MYSQL", "neuropsy");
$resuReq = $transaction->update("MYSQL_enregDateObj", $tab);
} |
Pour terminer, dans mon formulaire "zones.inc" :
Code:
1 2 3 4 5
| if(!empty($_SESSION['eve']))
{
$eve = unserialize($_SESSION['eve']);
...
list($jourEve, $moisEve, $anneeEve) = explode('/', $eve->getDateEve()); |
Et là, c'est l'ancienne date qui apparaît au lieu de la nouvelle.
Quelqu'un aurait une idée?
Merci d'avance.