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 :
$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 clique 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 : Tout sélectionner
onclick=\"enregiTypesRey(); window.location.href='../interfaces/interface.php?fichier=../fichiersInclusion/rey/zones.inc&titre=Figure de Rey&popup=1';\">Zones</a>Code : Tout sélectionner
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 ... $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" : 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 : Tout sélectionner
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.