Avatar billede nickbuus Nybegynder
21. marts 2001 - 11:54 Der er 13 kommentarer og
1 løsning

session problem fortsat!

<%
FOR EACH name in Request.QueryString
Session(name)=Request.QueryString(name)
NEXT

Session(name) tildeles navnet på querystring(name)
som kommer fra en produktliste og hvert produkt har et unikt nummer


FOR EACH name IN Session.contents
Response.write(session(name))
NEXT
%>
Her skal udskrives navnene på indholdet af alle session(name) variablerne
som er tilføjet kurven.
Denne udskriver kun det sidste produktnr som er oprettet og løkken løber altså kun 1 gang.

Hvordan får jeg løkken til at løbe over alle session(name) variabler?

Jeg har fået skidtet til at virke med en request.form ved samme fremgangsmåde!



Avatar billede slash Nybegynder
21. marts 2001 - 11:59 #1
et vild gæt:
for start=1 to session.contents(name).count
      gør det du vil
next
Avatar billede soerens Nybegynder
21. marts 2001 - 13:14 #2
Prøv med den her, virker hos mig:

Response.Write \"<table>\"
For Each Item in Session.Contents
    If IsObject(Session.Contents(Item)) Then
        Response.Write \"<tr><td>\" & Item & \"&nbsp;&nbsp;</td><td>Can\'t display object</td></tr>\"
    Else
        If IsArray(Session.Contents(Item)) Then
            Response.Write \"<tr><td valign=top>\" & Item & \"</td><td>\"
            arrDummy = Session(Item)
            For Each objArray In arrDummy
                Response.Write \"<li type=circle>\" & objArray & \"<br>\"
            Next
            Response.Write \"</li></td></tr>\"
        Else
            Response.Write \"<tr><td>\" & Item & \"&nbsp;&nbsp;</td><td>\" & Session.Contents(Item) & \"</td></tr>\"
        End If
    End If
Next
Response.Write \"</table>\"

/SørenS.
Avatar billede nickbuus Nybegynder
21. marts 2001 - 13:57 #3
SørenS:
gider du sende koden hvor du opretter session variablen
(som er en array i dit eks.?) og tilføjer en Request.QueryString med item
 
Avatar billede soerens Nybegynder
21. marts 2001 - 14:12 #4
Øh, hvaaaad? ;-)

Request.QueryString har intet med sessionsvariabler at gøre, så jeg er ikke lige med...

Mit eksempel udskriver alle sessionsvariabler. Er en af disse variabler et array, så kører den det igennem og udskriver indholdet (den opmærksomme læser vil sikkert lægge mærke til at det ikke virker med fler-dimensionelle arrays, men sår\'n er det bare ;-)

Du SÆTTER en session var på følgende måde:

Session(\"MySessionVar\") = \"Jajaja, det er godt med dig\"

/SørenS.
Avatar billede soerens Nybegynder
21. marts 2001 - 14:15 #5
Aaaah, hold on, nu har jeg forstået spørgsmålet:

Du vil læse alle parametrene fra QueryString over i Sessionsvariabler?

En af disse dage må jeg se at få lært at læse ;-)

Prøv med det her (har ikke testet det):

For Each Item in Request.Form
    Session(Item.Name) = Item.Value
Next

/SørenS
Avatar billede nickbuus Nybegynder
21. marts 2001 - 17:18 #6
Søren :
Din sidste kode giver denne fejlmeddelelse:

Session-objekt fejl \'ASP 0102 : 80004005\'

Forventer streng som input

/tester/Kurv.asp, linje 56

Funktionen forventer en streng som input


........
men hør lige er der noget galt med denne fremgangsmåde
som jeg viser øverst i spørgsmål:

FOR EACH name in Request.QueryString
Session(name)=Request.QueryString(name)
NEXT

Problemet opstår, som jeg ser det i denne sætning:

FOR EACH name IN Session.contents
Response.write(session(name))
NEXT

Den viser her kun den sidste tilføjede session variabel - formentlig placeres
den sidste session variabel ovenpå den foregående.
Jeg har prøvet med en Request.form og samme procedure og her er der ingen probl. :(
øv...
Avatar billede soerens Nybegynder
22. marts 2001 - 08:47 #7
Tjah, så vidt jeg kan se skal din kode se sådan her ud:

FOR EACH name IN Session.contents
  Response.write(session(name.name))
NEXT

Vil du udskrive værdien er det name.value

Jeg bruger følgende løkke til at udskrive Request.Form:

For Each Item in Request.Form
  Response.Write Item.Name & \":\" & Item.Value & \"<br>\"
Next

/SørenS.
Avatar billede soerens Nybegynder
22. marts 2001 - 09:00 #8
...jeg har lavet en lille debug side, der udskriver alle session vars, application vars, form collections osv. osv. osv.

Du kan hente den her:
http://www.netsoc.dk/xprt/debug.zip

Den er guld ;-)

/SørenS.
Avatar billede nickbuus Nybegynder
22. marts 2001 - 10:13 #9
Jeg kan ikke få name.name til at funke. Gider du  teste det med en request.querystring
istedet for request.form - jeg tror det gør forskellen.

Avatar billede soerens Nybegynder
22. marts 2001 - 10:20 #10
Ok, jeg har nu testet det, følgende kode virker:

For Each Item in Request.QueryString
  Response.Write Item & \":\" & Request.QueryString(Item) & \"<br>\"
Next

Jeg har desuden opdateret min debug på den URL jeg postede i tidligere nævnte post ;-)

/SørenS.
Avatar billede nickbuus Nybegynder
22. marts 2001 - 11:23 #11
Ja , den kan jeg godt få til at funke ;)
Jeg gør det sådan her:

FOR EACH name in Request.QueryString
Session(name)=Request.QueryString(name)
NEXT

Problemet er at den handlende(indkøbskurvsprojekt)
tilføjer et produkt af gangen og derfor bevæger sig imellem produktsiden og kurv-siden.
Derfor er jeg nødt til at gemme hver querystring i en session variabel (session(name))
Problemet er altså ikke at overføre querystring til en session variabel men at
udskrive alle session variablerne (som alle har et unikt navn)
dette virker ikke ;(
FOR EACH name IN Session.contents
Response.write(session(name))
NEXT

hmm?
Avatar billede soerens Nybegynder
22. marts 2001 - 12:15 #12
...har du prøvet min debug side?

Download den her:
http://www.netsoc.dk/xprt/debug.zip

/SørenS.
Avatar billede nickbuus Nybegynder
22. marts 2001 - 12:59 #13
Hey udmærket med den debug side - nu funker det :)
Du har arbejdet hårdt for de point - her kommer de og tak for hjælpen. Det var cool!

Nick


Avatar billede soerens Nybegynder
22. marts 2001 - 13:07 #14
Tak for point ;-)

Du skriver at du er ved at lave en shopping-system, og jeg vil så lige råde dig til noget når du bruger sessions:

Husk at tjekke for om dine brugere understøtter cookies!!!

Jeg ved ikke om du er klar over det, men Session variabler er baseret på cookies gemt i brugerens browser, og har brugeren disabled disse, så ka\' dine sider nemt komme til at opføre sig RET sjovt!

Bare lige et tip ;-)

Tjek evt. det her sp.:
http://www.eksperten.dk/spm/58595

Der har jeg postet noget kode, som jeg bruger til at tjekke om brugeren har Cookies eller JavaScript disabled.

/SørenS.

PS.: Doner endelig flere point til mig, hvis det er noget du ka\' bruge ;-)
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