[JS] Terug naar vorige pagina, maar ...

Pagina: 1
Acties:

  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Ik heb een probleempje :)

Ik maak een webshop, en zoals je je misschien kan voorstellen heb je overzichtpagina's en produkt-detail pagina's. Nu wil ik, wanneer ik op een overzichtpagina (een categorie, zoekresultaat, aanbiedingen etc) ben, de mogelijkheid hebben om terug te gaan naar de vorige pagina.

Normaal gesproken gebruik ik dan een linkje met 'Javascript:history.go(-1)'.


Echter dat geeft problemen... Vanaf een produkt-detail pagina kan men ook bestellen (het toevoegen aan een mandje gaat met Javascript), en wanneer dat gebeurt wordt een klein framepje met de totaalprijs geupdate.
Je raadt het al: wanneer men iets bestelt en dan op de history.go(-1)-linkje klikt dan gaan we dus niet terug naar de overzichtspagina maar dan gaat dat framepje dat geupdate wordt dus 1 venstertje terug (met de vorige totaalprijs).

Ook als ik niet bestel en mijn overzichtspagina was een pagina met zoekresultaten, dan krijg ik een scherm met "Waarschuwing: de pagina is verlopen".


Hoe los ik dit het beste op?

Geef mij maar een Warsteiner.


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Het frame met de totaalprijs updaten met de replace() methode;
bijvoorbeeld:
code:
1
top.frames['totaal'].window.location.replace('showtotaalprijs.php');

Intentionally left blank


  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Het is niet zo dat ik een bestandje heb daarvoor ... ik gebruik document.close en document.writes om het venstertje weer te vullen (is maar een frame van 20 pixels hoogte).

Volgens mij zit het probleem em in dat ook het klikken op een link in de history geplaatst wordt; kan ik met javascript ook doorverwijzen naar de pagina 'waar ik vandaan kwam' zeg maar?

Geef mij maar een Warsteiner.


  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Iemand?

Geef mij maar een Warsteiner.


Verwijderd

Wat je wel zou kunnen proberen, is in een hidden frame de pagina's zetten waar je in wilt bladeren en die (opnieuw) vanuit de hidden frame oproepen en plaatsen in het normale frame wanneer je ze weer nodig hebt.

  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Het werk heeft even een weekje stilgelegen, maar ik zit nog steeds met dit probleem... Ik kan niet in een hidden frame URL informatie opslaan, omdat ik dan weer zit met POST gegevens die verloren gaan (en waarom zou ik de server een script nog een keer uitvoeren als de desbetreffende pagina nog in het geheugen van de bezoeker staat?)

Kan iemand mij helpen?

Geef mij maar een Warsteiner.


Verwijderd

kun je niet i.p.v. een frame met de geupdate prijs er een div/layer van maken en daar de gegevens inlezen m.b.v. een document.write. Kun je dat weer 'hidden' maken wanneer men besteld heeft.

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Het lijkt mij het makkelijkst om, zodra je die update doet zeg maar, de pagina een variabele mee te geven, die je telkens met 1 verhoogt.
Dus je begint bij showtotal.php?timesback=1
En als je dan weer een update doet doe je timesback=timesback + 1; ofzo in PHP
En dan document.history.go(<?php echo $back; ?>

If then else matters! - I5 12600KF, Asus Tuf GT501, Gigabyte Gaming OC 16G 5080 RTX, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Of leer met sessies werken oid, ipv proberen een backend probleem te verhelpen met een clientside (frame) oplossing. Als je een webshop hebt ga je toch niet gegevens zoals totaalprijs opslaan in een frame?

  • Knakker
  • Registratie: April 2000
  • Laatst online: 31-07 17:39
Ik probeer júist te voorkomen dat het toevoegen van de produkten aan de bestelmand via server-side scripts loopt. Dat werkt zó verschrikkelijk traag, ik erger mezelf er altijd aan bij online shops. Het is namelijk helemaal niet nodig. Ik lees dump de relevante produktgegevens in Javascript variabelen, en Javascript poept er dan de juiste pagina uit. Als je via server-side scripts en sessies besteld, dan is iedere toevoeging weer een extra belasting op de server, dit is dat niet. Immers: de relevante gegevens zijn reeds aanwezig dmv Javascript-variabelen op dezelfde pagina.

Over 'veiligheid' hoef je ook niet in te zitten: wanneer de klant daadwerkelijk besteld dan worden ook alleen de ID nummers van de produkten en het bestelde aantal doorgegeven aan het bestelscript die op zijn beurt dan de juiste gegevens uit de db haalt. Dus manipulatie van de javascript variabelen heeft 0 effect - die variabelen dienen alleen ter verduidelijking voor de klant en gemakkelijk & snel bestellen.


Maar het probleem blijft, dat als je van pagina A naar pagina B gaat en je vervolgens op pagina B op een link klikt (die wat dan ook maar doet behalve de inhoud van het huidige frame veranderen), je met history.go(-1) níet terug naar pagina A gaat. Ik zoek dus een manier waarmee ik dat wél kan. Ik zou dat kunnen doen met het bijhouden van variabelen die de pagina geschiedenis bijhouden, maar daarbij gaat mijn POST informatie ook verloren. Bovendien wil ik niet onnodig scripts dubbel uitvoeren - als een bezoeker op een bepaald trefwoord zoekt, dan is een dergelijk script 1x uitvoeren wel genoeg lijkt me.

Geef mij maar een Warsteiner.


Verwijderd

is het niet te doen om alles zonder die frames enzo te doen?

  • HunterPro
  • Registratie: Juni 2001
  • Niet online
Verwijderd schreef op 11 augustus 2002 @ 17:19:
is het niet te doen om alles zonder die frames enzo te doen?
Nee, want je gebruikt een frameset om variabelen in op te slaan (een onzichtbaar frame dat alle code onthoudt).

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Precies.. frames zijn verre van ideaal.. en als je enige reden is om ze te gebruiken het onthouden van een paar variabelen..

En als het traag is serverside zou ik je applicatie eens nakijken. Pagina's zullen sowieso herladen moeten worden als je naar overzichten en details navigeert. Het opslaan/ophalen van gegevens in een sessie bestand of tabel zul je niet of nauwelijks merken.
Pagina: 1