Avatar billede sanne Nybegynder
11. februar 2001 - 16:54 Der er 19 kommentarer og
2 løsninger

Session variabel

Jeg har en session variabel, der på en startside bliver sat til værdien 0. et par sidere længere fremme bliver værdien ændret til 1. Dette sker i et nyåbnet vindue.
Værdien i det oprindelige vindue bliver ikke opdateret, hvad skyldes det? Selv om jeg opdatere siden bliver værdien ved med at være 0. Er der nogen der kan forklare mig hvad der sker.

Avatar billede tdaugaard Nybegynder
11. februar 2001 - 16:56 #1
Ligger begge sider på samme server ?
Avatar billede eagleeye Praktikant
11. februar 2001 - 16:56 #2
Det er forbi Session variable lige i vinduet. Hvis du åbner et nyt vinde er det en ny Session hvis du kan gemme nye variable.
Avatar billede sanne Nybegynder
11. februar 2001 - 16:56 #3
Jeps
Avatar billede tdaugaard Nybegynder
11. februar 2001 - 16:57 #4
eagleeye:> er det ikke ligemeget når siderne ligger på samme server/domæne?
Avatar billede sanne Nybegynder
11. februar 2001 - 16:57 #5
Jamen det forstår jeg ikke for jeg har andre session variabler der fungere udmærket på tværs af vinduer
Avatar billede eagleeye Praktikant
11. februar 2001 - 17:00 #6
Jo tdaugaard du har ret.

Hvordan åbnes det nye vindue
Avatar billede sanne Nybegynder
11. februar 2001 - 17:02 #7
Ved hjælp af et Javascript der benytter funktionen window.open
Avatar billede brain Nybegynder
11. februar 2001 - 17:03 #8
Må vi se koden?
Avatar billede sanne Nybegynder
11. februar 2001 - 17:07 #9
I får det lige i tre afdelinger:

Dette er koden hvor funktionen kaldes:


<%Dim Connect, Arr, sql, antal, checknavn
                            antal = 0
                            Session(\"Interval\") = Request(\"Interval\")

                            sql = \"SELECT * FROM Maskine WHERE F_id =\" & Session(\"id\") 
                            Set Connect = Server.CreateObject(\"ADODB.Connection\")
                            Connect.Open Session(\"DB1\")
                            Set Arr = Connect.Execute(sql)
                            do until Arr.EOF
                              antal = antal + 1
                              nummer = antal
                              checknavn = \"check\" & nummer
                              Session(checknavn) = 0
                              %>
                                <td width=\"50%\" valign=\"top\" height=\"25\"><%=Arr(\"Navn\")%></td>
                                <td width=\"50%\" valign=\"top\">
                                  <p align=\"center\"><input type=\"button\" value=\"Aflæs\" onClick=\"java script:NewWin(<%=Arr(\"Maskin_id\")%>,\'<%=Arr(\"Navn\")%>\',<%=nummer%>);\" name=\"maskine<%=antal%>\"></p>
                                  <%Response.Write checknavn %>
                                  <%=Session(checknavn)%>
                                </td>
                              </tr>
                            <%Arr.MoveNext
                            loop
                            Session(\"ialt\") = antal
                            Session(\"ikke_aflaest\") = antal%>




Dette er funktionen der åbner det nye vindue:

<SCRIPT scriptlanguage = \"JavaScript\">
<!--
function NewWin(m_id, navn, nr)
{
  checknavn = \"check\" & nr
  var check = \"<%=Session(checknavn)%>\";
  if (check == \"\")
  {
    navn = \'indtast.asp?aktuelid=\' + m_id + \'&navn=\' + navn + \'&nr=\' + nr
    NY = window.open(navn, \'NY\', \'width=450, height=280, toolbar=no,scrollbars=no, reziable=no\')
    NY.moveTo(200,200)
  }
  else
  {
    NY = window.open(\'eraflaest.asp\', \'NY\', \'width=200, height=100, toolbar=no,scrollbars=no, reziable=no\')
    NY.moveTo(200,200)
  }
}
-->
</SCRIPT>



Og her bliver variablen sat til 1:

        navn = \"check\" & Request(\"nr\")
        Session(navn) = 1



Avatar billede sanne Nybegynder
11. februar 2001 - 17:10 #10
Jeg skulle måske lige fortælle at det er den der hedder \"check\" + et nummer
Avatar billede eagleeye Praktikant
11. februar 2001 - 17:12 #11
Man har da ikke adgang til Session() fra JavaScript eller tager jeg fejl.
Avatar billede brain Nybegynder
11. februar 2001 - 17:14 #12
I de javascript funktioner der åbner det nuye vindue, prøv at kalde dine window handlers noget andet. eks \"newWin = \" istedet for \"NY =\" fordi vinduet også hedder \"NY\", det er er problem jeg har set før...
Avatar billede eagleeye Praktikant
11. februar 2001 - 17:15 #13
Jeg ville gætte på du skal over føre Session variable værdien i kaldet til din function:

function NewWin(m_id, navn, nr, Session_value)

og i kaldet:
onClick=\"java script:NewWin(<%=Arr(\"Maskin_id\")%>,\'<%=Arr(\"Navn\")%>\',<%=nummer%>,<%Session(checknavn)%>);\"
Avatar billede sanne Nybegynder
11. februar 2001 - 17:15 #14
Jeg tror ikke det er der fejlen ligger. Jeg har tjekket ved at skrive værdien ud på selve siden, altså udenom scriptet, og den bliver ved med at være 0

Forøvrigt var det her gennem eksperten jeg fik af vide at man kunne kalde værdien af en session variabel i et Javascript på den måde
Avatar billede sanne Nybegynder
11. februar 2001 - 17:17 #15
Til eagleeye:

Det kan jeg ikke eftersom navnet er dynamisk genereret
Avatar billede brain Nybegynder
11. februar 2001 - 17:19 #16
ahh, jeg så ikke lige at funktionen hed newwin, prøv at rette \"NY = window.open....\" til \"gnyffe = window.open...\"
Avatar billede sanne Nybegynder
11. februar 2001 - 17:21 #17
Til Brian:

Men det går galt allerede inden jeg henter sessionvariablen ind i scriptet!

Avatar billede eagleeye Praktikant
11. februar 2001 - 17:43 #18
Du kan vel genere den på samme måde i før kaldet som i sleve kaldet ??
Avatar billede brain Nybegynder
11. februar 2001 - 18:05 #19
checknavn = \"check\" & nr


hvad er det for en linje? i newWin ? Ligner noget der skulle have været ASP
Avatar billede sanne Nybegynder
11. februar 2001 - 18:06 #20
Nej det kan jeg ikke. Jeg skal have linien \"check + nr\" med inden jeg kan kalde sessionen
Avatar billede sanne Nybegynder
11. februar 2001 - 19:09 #21
Ok, jeg fandt en anden løsning. Jeg lod funktionen åbne det samme vindue i begge tilfælde og så lavede jeg først checket i det nye vindue, så virkede det.

Men tak for hjælpen begge to
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
Kurser inden for grundlæggende programmering

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