Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[PHP/JS] Actie bij verlaten pagina

Pagina: 1
Acties:

  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
Ik weet niet of ik op het goede forum zit, omdat het niet zeker is dat dot probleem opgelost kan worden met JS.

Anyway, ik heb een php-pagina geschreven waarin van een debiteur alle gegevens worden getoond, waaronder de adressen. Je kunt door deze adressen heen bladeren, maar dat is nu een beetje zo-zo opgelost: met submit-buttons. Ik wil het eerst ook nog niet met AJAX doen, omdat ik dat nog niet voldoende onder de knie heb.

Ik wil niet bij elke post-actie de data uit de database wil halen, en daarom stop ik de hele debiteur in de $_SESSION. Het probleem zit 'm hierin dat als een gebruiker wegnavigeert van de pagina de variabele nog wel in de $_SESSION staat, en dat wil ik niet.
Nu kan ik bovenaan iedere andere pagina alle irrelevante informatie uit de sessie gooien, maar dat lijkt me een slecht idee omdat het heel erg bewerkelijk is, en je zult maar eens een aanpassing moeten doen.

Ik wil detecteren als een gebruiker wegnavigeert van de pagina, en dan de variabele uit de sessie halen. Ik heb al eea geprobeerd met een soort tussenpagina, maar het probleem daar is dat ik niet kan zien waar de gebruiker naartoe wilde (wel waar hij vandaan kwam).

Heeft er iemand een idee hoe ik dit het beste kan aanpakken?

Opgelost (veel te makkelijk eigenlijk) |:( : Gewoon per pagina een variabele in de $_SESSION aanmaken, weg probleem. En: hoorde uiteindelijk toch in PRG thuis.

[ Voor 6% gewijzigd door coenbijlsma op 23-09-2007 17:59 . Reden: probleempje opgelost.. ]


  • Cartman!
  • Registratie: April 2000
  • Niet online
Na het lezen van je post vraag ik me sterk af of je weet waarvoor je $_SESSION gebruikt en hoe deze superglobal werkt eerlijk gezegd. Want waarom zou je de session moeten leegmaken op t moment dat de user de pagina verlaat?

  • MuisM4t
  • Registratie: Mei 2007
  • Niet online
Session information is temporary and will be deleted after the user has left the website.
kijk hier eens!

Edit: verkeerd gelezen! |:(

Maar kijk toch eens naar de link

[ Voor 16% gewijzigd door MuisM4t op 23-09-2007 22:06 ]


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Ik vind het 'niet uit de database wil halen' een beetje overrated, een goede databaseopzet, met goede indexen, is ook lekker snel hoor ;)

Going for adventure, lots of sun and a convertible! | GMT-8


  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
@Snake: Dat is waar natuurlijk, maar als je het OO-principe zo goed als mogelijk wilt volgen wil je eigenlijk dat de database en je objecten synchroon lopen, en eigenlijk alles in je interne geheugen stoppen. En ik heb zelf de kronkel dat je zo weinig mogelijk verkeer op en neer naar de database moet genereren ;)

@Cartman!: Dat weet ik. Ik zeg ook niet dat ik de hele sessie leeg wil halen, maar ik wil alleen die ene specifieke variabele unsetten. Ik zal het iets meer uitleggen: Ik sla de serialized string van een debiteur-object op in de sessie, en wil dat die er weer uit is zodra de gebruiker wegnavigeert van de pagina. Volgens mij heeft PHP geen page-scope zoals je die hebt als je jsp & servlets gebruikt, vandaar dat ik het maar in de sessie stop :)

Ik heb het nu als volgt gedaan: ik sla de variabele op als:
PHP:
1
$_SESSION[[$_SERVER['PHP_SELF']['debtor']]


Zo maakt het niet uit als de variabele blijft staan als de gebruiker de pagina weer verlaat.

  • burrug
  • Registratie: April 2005
  • Laatst online: 14-10-2024
Je kan ook alleen (als je dat hebt) het debiteurnummer of id opslaan in je $_SESSION of misschien zelfs in je $_GET! Adhv dit nummer trek je dan de verdere gegevens uit de database, dit werkt super, heb ik ook

Tannoy Revolution R3 105W 6ohm, Marantz PM-7003 2x70W 8ohm, 2x JVG goud/goud, Marantz CD-6003, Marantz ST-6003


  • coenbijlsma
  • Registratie: Augustus 2004
  • Niet online
Dat zou kunnen inderdaad, maar dan moet ik na een post (oid) de debiteur weer uit de database halen, en dat is niet nodig, omdat ik hem al opgehaald heb ;) Vandaar dat ik de hele debiteur in de sessie opsla.
Trouwens, de oplossing die ik noemde gebruik ik nu en die werkt naar tevredenheid :)
Pagina: 1