Ik heb twee situaties waarbij ik informatie wil doorgeven bij het reloaden van een site, maar ik loop tegen problemen aan.
Stel ik heb een tabel met producten in de database en ik bouw een back-office voor het invoeren van producten.
Situatie 1:
Ik voer een nieuw product in, via de link /admin/product/nieuw
Ik vraag naar enkele basisgegevens.
Met JavaScript en Ajax stuur ik de ingevoerde gegevens naar de server. Als alles goed is, krijg ik een id terug van het aangemaakte product. Er vindt (via Javascript)) een redirect aan naar /admin/product/<id> waar ik een overzicht zie van de gegevens en de mogelijkheid krijg om gegevens aan te vullen.
Ik wil nu het volgende: Als je bij /admin/product/<id> komt direct na het invoeren van een nieuw product, wil ik een divje bovenin hebben waar een melding in staat "Product <naam> toegevoegd aan database. Je kunt eventueel aanvullende gegevens invoeren."
Vraag: Hoe kan ik dat doen? Ik kan natuurlijk een get-variabele toevoegen aan de URL, bijvoorbeeld "isnieuw=ja", maar dat vind ik niet zo mooi. Iemand kan dan namelijk handmatig de URL aanpassen om die melding te krijgen, ook als producten er al staan.
Wat ik nu heb gemaakt is dat de melding in de sessie wordt bewaard. Bij weergave wordt deze onmiddellijk uit de sessie gehaald, waardoor de melding niet opnieuw verschijnt. Als iemand echter met meerdere browservensters tegelijk bezig is, dan kan de melding verschijnen in een heel ander browservenster. Hoewel de kans daarop klein is, vind ik die methode via de sessie niet echt mooi.
Wat ik eigenlijk nodig heb is een Javascript-variabele die zijn waarde blijft houden na het laden van een nieuwe pagina, maar die enkel geldt in één bepaald browservenster. Is dat er? Is er misschien een techniek die ik over het hoofd zie?
Situatie 2:
Ik heb een pagina met een overzicht van alle aanwezige producten in een tabel. Uiteraard kan ik zoeken op trefwoorden. Update tabel n.a.v. andere zoektermen doe ik met Ajax.
Ik wil echter dat die zoektermen worden onthouden, als de gebruiker op F5 drukt. Dat kan in een sessie, maar dan zit je ook weer met de kwestie van meerdere browservensters. ID's genereren als get-var vind ik ook niet zo fijn, want die kun je ook dupliceren.
Ik wil de URL in de adresbalk veranderen (get-vars aanpassen) zonder reload. Volgens mij kan dat niet.
Zijn er nog alternatieven?
Stel ik heb een tabel met producten in de database en ik bouw een back-office voor het invoeren van producten.
Situatie 1:
Ik voer een nieuw product in, via de link /admin/product/nieuw
Ik vraag naar enkele basisgegevens.
Met JavaScript en Ajax stuur ik de ingevoerde gegevens naar de server. Als alles goed is, krijg ik een id terug van het aangemaakte product. Er vindt (via Javascript)) een redirect aan naar /admin/product/<id> waar ik een overzicht zie van de gegevens en de mogelijkheid krijg om gegevens aan te vullen.
Ik wil nu het volgende: Als je bij /admin/product/<id> komt direct na het invoeren van een nieuw product, wil ik een divje bovenin hebben waar een melding in staat "Product <naam> toegevoegd aan database. Je kunt eventueel aanvullende gegevens invoeren."
Vraag: Hoe kan ik dat doen? Ik kan natuurlijk een get-variabele toevoegen aan de URL, bijvoorbeeld "isnieuw=ja", maar dat vind ik niet zo mooi. Iemand kan dan namelijk handmatig de URL aanpassen om die melding te krijgen, ook als producten er al staan.
Wat ik nu heb gemaakt is dat de melding in de sessie wordt bewaard. Bij weergave wordt deze onmiddellijk uit de sessie gehaald, waardoor de melding niet opnieuw verschijnt. Als iemand echter met meerdere browservensters tegelijk bezig is, dan kan de melding verschijnen in een heel ander browservenster. Hoewel de kans daarop klein is, vind ik die methode via de sessie niet echt mooi.
Wat ik eigenlijk nodig heb is een Javascript-variabele die zijn waarde blijft houden na het laden van een nieuwe pagina, maar die enkel geldt in één bepaald browservenster. Is dat er? Is er misschien een techniek die ik over het hoofd zie?
Situatie 2:
Ik heb een pagina met een overzicht van alle aanwezige producten in een tabel. Uiteraard kan ik zoeken op trefwoorden. Update tabel n.a.v. andere zoektermen doe ik met Ajax.
Ik wil echter dat die zoektermen worden onthouden, als de gebruiker op F5 drukt. Dat kan in een sessie, maar dan zit je ook weer met de kwestie van meerdere browservensters. ID's genereren als get-var vind ik ook niet zo fijn, want die kun je ook dupliceren.
Ik wil de URL in de adresbalk veranderen (get-vars aanpassen) zonder reload. Volgens mij kan dat niet.
Zijn er nog alternatieven?