Hallo ik ben op zoek naar een stuk PHP en/of JS, waarmee ik kan voorkomen dat mensen per ongeluk van de pagina af gaan (de pagina betreft een lang formulier)
Heeft iemand toevallig iets wat daarvoor kan zorgen? Ik heb al zitten googlen maar daar vond ik alleen wat scipts om te melden wanneer de hele pagina word weggeklikt... het lijkt me mogelijk maar ik kan nergens vinden hoe! Als iemand iets weet hoor ik het graag!
Ook deze is weer als je de hele site weg wil klikken, het betreft hier alleen een pagina, inschrijven.php bijvoorbeeld....
iets met:

<?php
if($_GET['page'] != 'inschrijven' && $_SESSION['inschrijven'] == 'busy') {
echo "Je was nog bezig. Stoppen?";
$_SESSION['inschrijven'] = 'clear';
}
?>


?
JS:


window.onbeforeunload = function() {
    return 'Uw formulier is nog niet opgeslagen!';
}
@henk,
wat als iemand geen JS heeft aanstaan? dat vind ik altijd een vreselijk nadeel van JS.
Als je een website bouwt moet die gelijk zijn voor iedereen, JS aan of uit, Netscape, IE, FF of weet ik veel welke browser.

Dan zou je m m.i. beter in php kunnen doen.
Hoe wil je dat met php doen dan?

Als iemand de pagina eenmaal verlaten heeft kan php daar niks meer aan doen.

Ander verhaal is als de user de pagina verlaat maar op een pagina van de zelfde website komt, dan kan je wel wat doen met php. Maar ik denk niet dat de TS dat bedoelt
Ok, ik ga voor de oplossing van Mark Moes; nu nog een domme vraag: moet je niet ergens een sessie starten of iets doen met Busy?

[EDIT]Het is de bedoeling dat het alleen plaatsvind als er op dezelfde site tijdens het process naar een andere pagina word gegaan[/EDIT]
session_start(); bovenaan de php pagina zetten waarin je gebruik van sessies maakt.

[code]
<?php

session_start():
if(gebruiker is bezig met het invullen van het formulier) {
$_SESSION['inschrijven'] == 'busy';
}

?>
Wat heb je aan die php oplossing?
Als je die pagina wegklikt dan sla je die waardes van het formulier toch niet op in een sessie dus wat heb je er dan aan?
In dat geval kan je beter een sessie 'formulier' aanmaken.

En in die sessie een array stoppen met de formulier waarden.

Vervolgens kijk je of deze sessie leeg is of niet.

Je hebt een stukje AJAX nodig om tijdens het invullen van het formulier deze sessie te wijzigen.

AJAX betekent weer javascript, javascript = 1e oplossing van henk.

Wil je het dus makkelijk? Geef elke bezoeker een fout pagina waarin wordt verzocht om JS aan te zetten, met instructies voor de leken. En gebruik de 1e oplossing van Henk.

Reageren