Waarschuwing bij verlaten pagina ?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Leon

Leon

04/01/2010 18:52:00
Quote Anchor link
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!
 
PHP hulp

PHP hulp

28/11/2024 13:52:22
 
Gerben G

Gerben G

04/01/2010 18:57:00
 
Leon

Leon

04/01/2010 19:03:00
Quote Anchor link
Ook deze is weer als je de hele site weg wil klikken, het betreft hier alleen een pagina, inschrijven.php bijvoorbeeld....
 
Mark moes

mark moes

04/01/2010 19:22:00
Quote Anchor link
iets met:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if($_GET['page'] != 'inschrijven' && $_SESSION['inschrijven'] == 'busy') {
echo "Je was nog bezig. Stoppen?";
$_SESSION['inschrijven'] = 'clear';
}

?>



?
 
Henk PHP

Henk PHP

04/01/2010 19:27:00
Quote Anchor link
JS:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
window.onbeforeunload = function() {
    return 'Uw formulier is nog niet opgeslagen!';
}
 
Mark moes

mark moes

04/01/2010 19:43:00
Quote Anchor link
@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.
 
Pepijn

Pepijn

04/01/2010 19:47:00
Quote Anchor link
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
 
Leon

Leon

04/01/2010 19:49:00
Quote Anchor link
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]
Gewijzigd op 01/01/1970 01:00:00 door Leon
 
Pepijn

Pepijn

04/01/2010 19:54:00
Quote Anchor link
session_start(); bovenaan de php pagina zetten waarin je gebruik van sessies maakt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

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


?>
 
Henk PHP

Henk PHP

04/01/2010 19:56:00
Quote Anchor link
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?
Gewijzigd op 01/01/1970 01:00:00 door Henk PHP
 
Pepijn

Pepijn

04/01/2010 20:02:00
Quote Anchor link
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.
Gewijzigd op 01/01/1970 01:00:00 door Pepijn
 
Leon

Leon

04/01/2010 20:17:00
Quote Anchor link
erm... bedankt voor deze vrij verhelderende informatie, het enige wat niet verhelderend is is dat ik nog GEEN verstand heb van Ajax, en JS is ook al niet mn sterkste punt... Is er iemand die zin en tijd heeft om dat even voor me uit te leggen?
 
Pepijn

Pepijn

04/01/2010 20:19:00
Quote Anchor link
Ben zelf ook waardeloos in JS en AJAX maar ik wil ook niet van die gekke dingen.

Voor AJAX:
http://www.ajaxlessons.com/

En voor JS mag je zelf zoeken.
Gewijzigd op 01/01/1970 01:00:00 door Pepijn
 
Leon

Leon

04/01/2010 21:22:00
Quote Anchor link
Ik heb inmiddels van iemand advies gekregen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?
      <script language="javascript" type="text/javascript">
      UNLOAD_MSG = 'Als u de pagina afsluit gaan de gegevens in uw karretje verloren';
      function
doBeforeUnload(){
      if(window.event){
      window.event.returnValue = UNLOAD_MSG;
      }
else{
      return UNLOAD_MSG; }
      }

      if(window.body){
      window.body.onbeforeunload = doBeforeUnload;
      }
else{
      window.onbeforeunload = doBeforeUnload;
      }

      </script>

?>


hiermee doet ie t helemaal! Bedankt iedereen die de moeite genomen heeft om te kijken!
 
Mark moes

mark moes

05/01/2010 10:12:00
Quote Anchor link
Tja, Pepijn en Henk,
als je het zo bekijkt hebben jullie inderdaad gelijk, ik meende ergens dat er al een actie was uitgevoerd op de pagina inschrijven, maar nog niet voltooid. Maar inderdaad, als dat om een form gaat zal er wel Ajax/Javascript aan te pas moeten komen.

Ik zal toch nog eens zoeken naar de perfecte oplossing :P
 
Leon

Leon

05/01/2010 14:33:00
Quote Anchor link
Ik heb nu idd weer een probleempje gevonde: Als je de pagina wil verzenden , gewoon POST, dan geeft hij die melding ook weer :( Nou heb ik niet veel verstand van code nakke (is misschien een te lelijk woord) maar bij Hotmail zit zo'n programma wel inbegrepen, maar dat werkt pas als je iets al heb ingevult.
Is er iemand die iets meer verstand heeft van JS en dat soort dingen die kan vinden hoe zij dat hebben opgelost?
 
Pepijn

Pepijn

05/01/2010 15:13:00
Quote Anchor link
Heb je een linkje/fimpje naar deze hotmail functie?
 
Leon

Leon

05/01/2010 15:24:00
Quote Anchor link
Dat is gewoon inloggen op je hotmail (als je die heb, ik neem bijna aan van wel) en dan Nieuw bericht... ik kan geen linkje sturen, want dan moet je toch inloggen... Type een paar letters in het tekstvak en ga naar bv. je Inbox, dan zie je de melding......
 
Hipska BE

Hipska BE

05/01/2010 16:02:00
Quote Anchor link
Ik krijg zo'n melding bij elke site.

Gewoon een goede browser gebruiken heet dat.
 
Leon

Leon

05/01/2010 16:20:00
Quote Anchor link
Dan heeft dat toch echt met jou instellingen te maken, want dat hoort dus niet bepaald.... Ga plz niet van DIT soort onzinnige reacties geven, want dit heeft niets met helpen te maken of iets toevoegen.
 
- -

- -

05/01/2010 17:09:00
Quote Anchor link
@Leon: Als je je toon een beetje aanpast, willen mensen je misschien eerder helpen. @Hipska heeft verder helemaal gelijk, browsers als Safari (op Mac weet ik tenminste) geven netjes een waarschuwing als je een pagina verlaat waar je iets in een formulier hebt ingevuld.

Verder hier een simpel voorbeeld van hoe je deze melding weglaat bij het verzenden van je formulier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<script type="text/javascript">
    UNLOAD_MSG = 'Als u de pagina afsluit gaan de gegevens in uw karretje verloren';
    SHOW_UNLOAD_MSG = true;

    function doBeforeUnload() {
        if (window.event) {
            window.event.returnValue = UNLOAD_MSG;
        } else {
            return UNLOAD_MSG;
        }
    }

    function sendForm() {
        if (window.body) {
            window.body.onbeforeunload = null;
        } else {
            window.onbeforeunload = null;
        }
    }

    if (window.body) {
        window.body.onbeforeunload = doBeforeUnload;
    } else {
        window.onbeforeunload = doBeforeUnload;
    }
</script>

...

<form onsubmit="sendForm();" ...>
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.