Avatar billede anderseiler Nybegynder
21. februar 2006 - 22:04 Der er 6 kommentarer og
1 løsning

OnExit gør noget. bare noget.

Hej... Hvordan gør man sådan, at når man forlader en side (php vel og mærket), så udfører den noget bestemt. F.eks. at indsætte/slette noget i en mysql db.

Mvh
Anders :)
Avatar billede coderdk Praktikant
21. februar 2006 - 22:45 #1
Det kan du ikke gøre i php. Du skal have fat i javascript. Du kan gøre det sådan:

<script type="text/javascript">
  var doExit = 1;
  window.onunload = function() {
      if ( doExit == 1 )
      {
        i = new Image();
        i.src = 'http://example.dk/exit_script.php';
        // Denne kan også være en window.open
      }
  }
</script>

Men for at denne ikke skal aktivere hver gang du navigerer rundt på din egen side, skal du hacke lidt, f.eks. sådan ved et link:

<a href="http://example.dk/andetscript.php" onclick="doExit=0">hejsa</a>

Når du klikker bliver javascriptvariablen doExit sat til 0, og onunload vil så ikke køre det inde i if-sætningen.
Avatar billede anderseiler Nybegynder
21. februar 2006 - 23:15 #2
Okay... Er ikke lige så klog på det der, så har lige 2 spørgsmål mere:

1: Man kan godt bare placere den nederst i dokumentet, ikke? Eller skal den sidde aller øverst eller hvad?

2: Jeg vil godt have en if mere ind. Det skal være sådan, at den skal ikke udføre "if-sætningen" hvis $_POST['navn'] eksisterer. Er det muligt?
Avatar billede coderdk Praktikant
21. februar 2006 - 23:37 #3
1. Det er næsten ligemeget hvor du sætter den. Det er pænest at smide den imellem <head> og </head> øverst.

2. Nej, for det er slet ikke PHP. Det er javascript. Alt dette foregår på brugerens maskine. I din <form>, der poster, kan du sætte: onsubmit="doExit=0"
Avatar billede anderseiler Nybegynder
21. februar 2006 - 23:49 #4
Ja... Som sagt ved jeg ikke så meget om js :)

Nu har jeg den her

<script type="text/javascript">
  var doExit = 1;
  window.onunload = function() {
      if ( doExit == 1 )
      {
        i = new Image();
        window.open = 'http://djz.dk';
        // Denne kan også være en window.open
      }
  }
</script>


til at stå næsten øverst i mit dokument.. Bare lige for at teste.. Problemet er bare, at der ikke sker noget når jeg klikker mig væk fra siden hvor koden ligger på.. Hvordan kan det være? Skal jeg kalde den funktion på nogen måde eller sådan noget?
Avatar billede coderdk Praktikant
21. februar 2006 - 23:53 #5
Nej, der sker ikke noget du kan se - Du har rettet i koden, men gjort det forkert:

<script type="text/javascript">
  var doExit = 1;
  window.onunload = function() {
      if ( doExit == 1 )
      {
        window.open( 'http://djz.dk', 'onexitwin', 'width=200,height=200,menubar=no,location=no,resizable=no,scrollbars=no,status=no" );
      }
  }
</script>
Avatar billede anderseiler Nybegynder
22. februar 2006 - 15:58 #6
Selvfølgelig :) Smid et svar min ven...

takker...
Avatar billede coderdk Praktikant
22. februar 2006 - 17:05 #7
Ok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester