Avatar billede ripley Nybegynder
10. december 2000 - 11:47 Der er 10 kommentarer og
1 løsning

Beholde indhold i felter v. refresh

Hvis man har en HTML-side med en form - og der i denne form er en række <INPUT type=\"text\">,<SELECT> m.m. - kan man så ikke vha. javascript sørge for, at hvis der trykkes refresh i browseren, så beholdes indholdet i felterne?
Jeg prøvede med en funktion i denne stil, men den virker ikke - indholdet forsvinder bare. Og måske giver det heller ingen mening at programmere det sådan - er der nogen, der har andre idéer til, hvordan jeg koder mig ud af det?
(Formen har i forvejen en \"onsubmit\"-event) - så jeg forestiller mig, at det må kunne klares med en onload-event på body-tag´et???


<HTML>

<HEAD>

<SCRIPT language=\"javascript\">
function keep(formen) {
for(i=0;i<formen.elements.length;i++) {
    curField = formen[i];
    curField.value = curField.value;
    }
}

</SCRIPT>
</HEAD>
<BODY onload=\"keep(document.testform);\">
<FORM name=\"testform\" method=\"post\">
<INPUT type=\"text\" name=\"test\"><BR>
<INPUT type=\"text\" name=\"test2\"><BR>
</FORM>
</BODY>
</HTML>
Avatar billede mmp Nybegynder
10. december 2000 - 11:54 #1
Det kan du ikke sådan der. For lige så snart, siden bliver oploadet igen - Bye, bye til variablernes tildelte værdi. Du skal finde et andet sted at gemme værdierne. Har du mulighed for at køre serverside scripts?
Avatar billede ripley Nybegynder
10. december 2000 - 11:55 #2
Det har jeg aldrig prøvet før - hvordan fungerer det?
Avatar billede ripley Nybegynder
10. december 2000 - 11:58 #3
..Men jeg kan selvfølgelig godt se, hvad du mener - det står pludselig klart for mig, at når siden refreshes, så har felterne jo ingen value - sådan er det jo defineret i min HTML - og så hjælper det jo ikke noget med min funktion...
Avatar billede mmp Nybegynder
10. december 2000 - 12:09 #4
Hvis du har adgang til en server, der kan køre ASP (eller JSP, whatever), så kan du bruge VBScript som serversite og dermed holde på variablernes værdi (med mindre serveren selvfølgelig lige dykker). Ellers skal du ud og rode i at holde dem i midlertidig tekstfil på clientens PC.
Avatar billede ldanielsen Nybegynder
10. december 2000 - 13:06 #5
Prøv at submitte formen på <body onUnload=\"\">
Avatar billede stringbuffer Nybegynder
10. december 2000 - 14:55 #6
Jeg kan umiddelbart komme på 2 måder at gøre det på: den første er med cookies. Du skriver en cookie med javascript hvor du gemmer indholdeta f dine felter og så tjekker for den cookie fra samme side, dvs hvis cookie findes skal den læses og du kan så proppe variablene tilbage i formularen.

En anden måde at gøre det på, er ved at bruge en java applet. Fidusen består i at du så kan læse alle de variable, du har proppet i din applet, sålænge de sider, du nevigerer mellem, indeholder denne applet. Det svarer faktisk til at lave en client-side session håndtering.
Avatar billede ripley Nybegynder
11. december 2000 - 08:55 #7
stringbuffer:
Dén med cookies var måske værd at overveje. Men kan jeg skrive til cookies på <BODY onload>, så cookies oprettes hvis brugeren refresher siden og så skrive fra cookies tilbage til felterne igen - eller er det umuligt?
Avatar billede mmp Nybegynder
11. december 2000 - 12:51 #8
Cookies - ja og nej. Nogle har slået cookies fra. Så er det jo ikke så smart.
Avatar billede jakoba Nybegynder
11. december 2000 - 20:12 #9
Resize bibeholder formdata. Det gøre history.go(0) også. Så hvis du kunne sætte en anden handeler på knappen...  Men det kan du vist ikke.

Du kunne evt bruge scriptet på siden:
  http://hjem.get2net.dk/Jakob.Aggernaes/temp/exp32917.html
til at huske formdata. (hvergang brugeren ændrer i et felt laver du en link til siden selv og lægger de medsendte formdata tilbage i formen).på den måde \'husker\' du formdata i sidens location-felt. Men det ville give noget flicker med alle de loads.

Der må nok være en bedre løsning.

mvh JakobA
Avatar billede sbarnney Nybegynder
26. januar 2001 - 16:05 #10
Her er hvad du har brug for.

http://www.pcworld.dk/Default.asp?Mode=2&ArtikelID=1849

MVH

Stig
Avatar billede ripley Nybegynder
13. marts 2001 - 08:33 #11
Det lyder som noget af det rigtige - tak, sbarnney
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