variabelen veranderen bij sluiten pagina
Ik ben bezig met een soort web applicatie in PHP/MySQL en Javascript.
Aan de linkerkant heb ik een menu met een aantal opties.
Daarnaast heb ik een pagina waarop ik een aantal waardes verander.
Onderaan aan die pagina heb ik een knop: Opnieuw.
Als ik daarop klik worden die waardes gereset.
Nu mijn vraag.
Is het ook mogelijk om de waardes te laten resetten op het moment dat ik in het linkermenu een item aanklik en er een andere pagina wordt geopent?
Alvast bedankt
EDIT: ik heb nu het volgende:
window.onbeforeunload = leavePage;
function leavePage() {
// hier code
}
hoe kan ik daar deze php code laten uitvoeren:
Code (php)
1
2
2
$userdb->q("UPDATE obj2_veritems SET vitm_bevestigd=0 WHERE id=".$_POST['id_veritem']);
$userdb->q("UPDATE obj2_veritems_link SET bevestigd=0 WHERE id_veritem=".$_POST['id_veritem']);
$userdb->q("UPDATE obj2_veritems_link SET bevestigd=0 WHERE id_veritem=".$_POST['id_veritem']);
Gewijzigd op 12/07/2011 09:41:07 door Maikel B
Dan zul je moeten gaan werken met AJAX. Je roept dan een PHP pagina aan met die code erin.
Ik had verder gezocht maar volgens mij is er niks anders om te zorgen dat de functie alleen wordt uitgevoerd als de pagina daadwerkelijk wordt gesloten.
Dat klopt, omdat de browser dit (blijkbaar) niet kan meten. Je kunt met misschien F5 wel afvangen door een key listener te gebruiken en het klikken van een link moet ook wel te doen zijn. Echter heb je dan nog niet alle situaties en blijft het lastig om tegen dit 'probleem' aan te programmeren. Ik zou kijken of je niet iets aan de architectuur van je code kan doen (vast wel toch?)
ik zal is wat gaan uitvogelen hoe ik het voor elkaar kan krijgen haha :p
Bijvoorbeeld dat je de de waardes heb op pagina X (index?page=X) en dat je dan ook de page in een sessie opslaat.
Bij onload kun je dan snel kijken met Ajax bijvoorbeeld of deze pagina nogsteeds X is, of dat het een andere pagina is geworden. Dan bij een andere pagina, dat je alles reset...
Ik weet niet, ik probeer met je mee te denken buiten de box :)