Avatar billede diff Nybegynder
03. november 2004 - 21:37 Der er 6 kommentarer og
1 løsning

objekter i sessions

Jeg skal overføre en javascript variable (object) fra en side og til en anden. Eller det vil sige at jeg skal gemme objektet på en side hvor en form sumbittes for a kunne uploade en fil.

Er det muligt at gemme dette objekt, således at jeg ikke taber værdien af det ved reload af siden (upload af fil) ?
Avatar billede olebole Juniormester
03. november 2004 - 21:59 #1
<ole>

Du må på en eller anden måde opløse objektet. Det kan du naturligvis kun, hvis det består af variabler - og ikke indeholder metoder. Det bliver dog meget let noget syndigt rod  :o|

Du kunne jo submitte formen til en skjult iframe, så siden ikke reloader:

<form ...... target="loadFR">
<iframe name="loadFR" src="about:blank" style="display:none"></iframe>

/mvh
</bole>
Avatar billede diff Nybegynder
04. november 2004 - 10:38 #2
Ahh ja det lyder ikke som en dårlig idé. Med mindre, problemet er nemlig at den fil der uploades får et nyt navn (returneres af server-script) og det navn skal jeg bruge.

Men det skulle vel heller ikke være noget problem, at formen i iframen submittes og den nye side der loades i iframen indeholde det nye filnavn. ?
Avatar billede olebole Juniormester
04. november 2004 - 12:20 #3
Hvis du har en variabel 'gnu' i hoveddokumentet, skriver du i dokumentet i iframe'en:

<script type="text/JavaScript">
  parent.gnu = "Det_ny_filnavn.jpg";
</script>

Så bliver variablen 'gnu' i hoveddokumentet sat til det nye filnavn  :)
Avatar billede olebole Juniormester
04. november 2004 - 12:22 #4
PS: Strengen "Det_ny_filnavn.jpg" udskriver du naturligvis på serveren.

Husk, at JavaScript kræver, der er gåseøjne omkring strengen ... noget, man af og til glemmer, når der skrives JS-strenge ud på serveren  ;o)
Avatar billede diff Nybegynder
07. november 2004 - 11:57 #5
Hej olebole...

Jeg har forsøgt med dit forslag og dele af det virker også fint, men jeg kan ikke få fat i variable værdierne fra iframen. Jeg har forsøgt med med følgende :

<iframe id="upload" name="upload" src="about:blank" style="display:none">
    <script language="JavaScript">
        var test = "http://test.dk/filnavnfraserver.gif";
    </script>
</iframe>

    <script language="JavaScript">
        txtFileName.value = window.frames['upload'].document.test.value;
    </script>
   
Og

<iframe id="upload" name="upload" src="about:blank" style="display:none">
    <script language="JavaScript">
        parent.txtFileName.value = "http://test.dk/filnavnfraserver.gif";
    </script>
</iframe>

Desværre virker ingen af delene... Overser jeg noget banalt ?
Avatar billede diff Nybegynder
07. november 2004 - 12:18 #6
Ahh har luret det...

<script type="text/JavaScript">
  parent.gnu = "Det_ny_filnavn.jpg";
</script>

skal stå i det dokument der loades i iframen... man kan ikke bare indsætte det direkte :

<iframe>
    <script type="text/JavaScript">
          parent.gnu = "Det_ny_filnavn.jpg";
    </script>
</iframe>

Så skal det i stedet indsættes i onload...  Men jeg takker stadig mange gange for idéen...
Avatar billede olebole Juniormester
07. november 2004 - 23:51 #7
Nej, det er ligegyldigt, hvor det står i dokumentet ... det behøver ikke at blive fyret af på onload. Dokumentet, der returneres til iframe'en efter upload, kunne se sådan ud:

<html>
<body>
    <script type="text/JavaScript">
          parent.gnu = "Det_ny_filnavn.jpg";
    </script>
</body>
</html>
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