Avatar billede fun22 Nybegynder
26. maj 2005 - 19:06 Der er 23 kommentarer og
1 løsning

Ingen dubletter i varialble

Hej

Jeg er ved at lave en indkøbskurv og bruger session variabler til det.
Men hvis man tilføje en ens vare over to gange, for feks. at tilføje en mere af denne vare, så kommer det til at stå to gange.

Kan man ikke ligge dem sammen?

arrVarerIKurven
arrAntalAfVaren

arrVarerIKurven er den var. som indeholder varenummeret. Og arrAntalAfVaren er den var. der indeholder antalet.

Hvis der så er to ens arrVarerIKurven skal d to tilhørende arrAntalAfVaren ligges sammen..

Hvordan gøres det?
Avatar billede thesurfer Nybegynder
26. maj 2005 - 19:23 #1
Måske sådan her (ikke testet):

dim findes, i, j

findes = false
for i = 0 to Ubound(arrVarerIKurven)
  if NyKode = arrVarerIKurven(i) then
    ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
    findes = true
    exit for
  end if
next

if findes = true then
for j = 0 to ubound(arrAntalAfVaren)
  if i = j then
    arrAntalAfVaren = CInt(arrAntalAfVaren) + 1
    exit for
  end if
next
end if

/theSurfer
Avatar billede thesurfer Nybegynder
26. maj 2005 - 19:39 #2
hmmm....
Avatar billede thesurfer Nybegynder
26. maj 2005 - 19:50 #3
Man burde vel bare kunne bruge:

dim findes, i

findes = false
for i = 0 to Ubound(arrVarerIKurven)
  if NyKode = arrVarerIKurven(i) then
    ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
    arrAntalAfVaren = CInt(arrAntalAfVaren) + 1
    exit for
  end if
next
Avatar billede thesurfer Nybegynder
26. maj 2005 - 19:57 #4
Sådan (nu er det testet):

dim i

for i = 0 to Ubound(arrVarerIKurven)
  if NyKode = arrVarerIKurven(i) then
    ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
    arrAntalAfVaren(i) = CInt(arrAntalAfVaren(i)) + 1
    exit for
  end if
next

/theSurfer
Avatar billede fun22 Nybegynder
27. maj 2005 - 16:56 #5
Okay surfer, jeg kigger lige på det efter weekeden da jeg ikke har tid lige nu.. Men tak for hjælpe indtil videre..
Avatar billede thesurfer Nybegynder
27. maj 2005 - 17:18 #6
hey mester.. kan jeg ikke få dig til, at kigge på dine gamle spørgsmål..?:

http://www.eksperten.dk/list.phtml?sort=&order=DESC&status_1=on&status_2=on&spm_creator=fun22&spm_part=&spm_answer=&find=&engine=exp

Der er en del, der venter på at få kommenterer/svar/points/osv..

/theSurfer
Avatar billede fun22 Nybegynder
30. maj 2005 - 17:22 #7
Der kommmer en fejl ved: CInt.. Type mismatch: 'CInt'..

Jo jeg gør det lige nu ;) Havde lige glemt dem..
Avatar billede thesurfer Nybegynder
31. maj 2005 - 11:09 #8
Hvilken linie melder den fejl ved?

Jeg går ud fra, at AntalAfVaren *kun* indeholder hele tal (f.eks 1, 4, 2, osv) og ikke kommatal (f.eks. "2,3", "5,4", osv).. Er det korrekt?

Mine variabler:
NyKode = den nye kode, som skal lægges i kurven
arrVarerIKurven(i) = den nuværende var i kurven, NyKode skal sammenlignes med
arrAntalAfVaren(i) = det nuværende antal af varen, der skal lægges 1 til

/theSurfer
Avatar billede fun22 Nybegynder
31. maj 2005 - 19:18 #9
Tror heller ikke helt den gør det jeg ønkser..

Lige nu bruger jeg følgende kode til at tilføje en vare til kurven:

Session("Varenr") = Session("Varenr") & "|" & id
Session("Antal") = Session("Antal") & "|" & Request.Form("count")

Det er her der skal tjekkes for om varen allerede eksistere..

Ved godt det er mig der ikke har formuleret mig klart nok, beklager.. Hæver pointsne..
Avatar billede thesurfer Nybegynder
31. maj 2005 - 21:22 #10
Jeg mener at have forstået dig korrekt, og at min kode virker som det skal..

Jeg har lavet et eksempel til dig (smid det i en ny ASP-fil):

<%
Option Explicit

dim output
dim arrVarerIKurven, arrAntalAfVaren, NyKode

arrVarerIKurven = "hus,bil,cykel" ' disse vare har kunden lagt i kurven
  arrVarerIKurven = split(arrVarerIKurven, ",")

arrAntalAfVaren = "1,1,1" ' antallet af varene i kurven
  arrAntalAfVaren = split(arrAntalAfVaren, ",")

response.write "I kurven lægger der nu:<br><br>"
for output = 0 to ubound(arrVarerIKurven)
  response.write arrVarerIKurven(output) & ": " & arrAntalAfVaren(output) & "<br>"
next



NyKode = "bil" ' brugeren har lige tilføjet "bil" til kurven
response.write "<br>kunden har lige tilføjet *" & NyKode & "* til kurven"


dim i

for i = 0 to Ubound(arrVarerIKurven)
  if NyKode = arrVarerIKurven(i) then
    ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
    arrAntalAfVaren(i) = CInt(arrAntalAfVaren(i)) + 1
    exit for
  end if
next


response.write "<br><br>I kurven er der nu:<br><br>"

for output = 0 to ubound(arrVarerIKurven)
  response.write arrVarerIKurven(output) & ": " & arrAntalAfVaren(output) & "<br>"
next
%>

/theSurfer
Avatar billede fun22 Nybegynder
06. juni 2005 - 22:25 #11
Hej, undskyld jeg først svare nu men har ikke fået en mail om at der var kommet svar..

Nu har jeg så min kode der ser sådan her ud:

arrVarerIKurven = "hus,bil,cykel" ' disse vare har kunden lagt i kurven
                  arrVarerIKurven = split(Session("Varenr"), "|")

            arrAntalAfVaren = "1,1,1" ' antallet af varene i kurven
                  arrAntalAfVaren = split(Session("Antal"), "|")


            NyKode = id ' brugeren har lige tilføjet "bil" til kurven

            if Ubound(arrVarerIKurven) = -1 then
           
                Session("Varenr") = Session("Varenr") & "|" & id
                Session("Antal") = Session("Antal") & "|" & Request.Form("count")
               
            end if

            for j = 0 to Ubound(arrVarerIKurven)
                  if NyKode = arrVarerIKurven(j) then
                ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
                    arrAntalAfVaren(j) = CInt(arrAntalAfVaren(j)) + Request.Form("count")
                    exit for
                  end if
            next

Men jeg bruger jo sessions til at flytte "kurven" mellem flere sider.. Virker de der arrAntalAfVaren(i) på alle sider eller hvordan?
Avatar billede thesurfer Nybegynder
06. juni 2005 - 22:43 #12
1) Hvor kommer "id" fra?: NyKode = id ' brugeren har lige tilføjet "bil" til kurven

2) arrays kan ikke hentes på tværs af sider.. dvs, du skal "genopbygge" din session:

' genopbyg session:
dim tmpVarer, tmpAntal

tmpVarer = ""
tmpAntal = ""

for i = 0 to ubound(arrVarerIKurven)
  tmpVarer = tmpVarer & arrVarerIKurven(i) & "|"
  tmpAntal = tmpAntal & arrAntalAfVaren(i) & "|"
next

' man skal huske at fjerne de sidste auto-genererede "|":
tmpVarer = left(tmpVarer, len(tmpVarer) - 1)
tmpAntal = left(tmpAntal, len(tmpAntal) - 1)

session("Varenr") = tmpVarer
session("Antal") = tmpAntal


Så er oplysningerne i sessionerne opdateret.

/theSurfer
Avatar billede fun22 Nybegynder
06. juni 2005 - 23:07 #13
id er varenummeret..

Nu lægger den godt nok talene sammen men så vil den ikke tage andre vare end den slags der blivet tilføjet først til kurven..

Hvis f.eks. jeg tage en sko, og så bagefter vil have en trøje, så kan jeg ikke det.. Der sker bare ikke noget.. Men jeg kan godt tilføje flere sko..

Koden ser sådan her ud:

if Request.ServerVariables("REQUEST_METHOD") = "POST" then
   
        if Request.Form("count") = "0" OR Request.Form("count") = "" then
            response.write "Du skal angive det antal af varen du ønsker at købe!"
       
        else
           
            dim output
            dim NyKode, j

                  arrVarerIKurven = split(Session("Varenr"), "|")

                  arrAntalAfVaren = split(Session("Antal"), "|")


            NyKode = id ' brugeren har lige tilføjet "bil" til kurven

            if Ubound(arrVarerIKurven) = -1 then
           
                Session("Varenr") = Session("Varenr") & "|" & id
                Session("Antal") = Session("Antal") & "|" & Request.Form("count")
               
            end if

            for j = 0 to Ubound(arrVarerIKurven)
                  if NyKode = arrVarerIKurven(j) then
                ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
                    arrAntalAfVaren(j) = CInt(arrAntalAfVaren(j)) + Request.Form("count")
                    exit for
                  end if
            next
       
        dim tmpVarer, tmpAntal

        tmpVarer = ""
        tmpAntal = ""

        for i = 0 to ubound(arrVarerIKurven)
          tmpVarer = tmpVarer & arrVarerIKurven(i) & "|"
          tmpAntal = tmpAntal & arrAntalAfVaren(i) & "|"
        next

        ' man skal huske at fjerne de sidste auto-genererede "|"
        tmpVarer = left(tmpVarer, len(tmpVarer) - 1)
        tmpAntal = left(tmpAntal, len(tmpAntal) - 1)

        session("Varenr") = tmpVarer
        session("Antal") = tmpAntal

   
        response.redirect Request.Servervariables("HTTP_REFERER")
   
        end if
    end if
Avatar billede thesurfer Nybegynder
13. juni 2005 - 02:38 #14
hmm.. jeg plejer ellers at checke, de spørgsmål jeg deltager i, da jeg ikke modtager mails.. må have overset det her spørgsmål.. sorry mate..


Hvad bruger du denne IF-blok til..?

            if Ubound(arrVarerIKurven) = -1 then
           
                Session("Varenr") = Session("Varenr") & "|" & id
                Session("Antal") = Session("Antal") & "|" & Request.Form("count")
               
            end if

Den siger "Hvis der IKKE allerede er noget i kurver, tiløj noget nyt".. den IF-blok har jeg fjernet/rettet til..


Så er der noget nyt kode til dig :-)

Jeg har flyttet positionen af deklarationen af nogle variabler, og tilføjet en variabel, så det ser sådan ud:

dim output, i
dim arrVarerIKurven, arrAntalAfVaren, NyKode, count
dim fundet


HUSK: Man skal aldrig stole på brugeren! :-)
Du skal derfor ALTID sikre dig, at de oplysninger bruger giver dig, er i de korrekte formater. Hvis brugeren skriv "a" i stedet for antallet af varer, vil din nuværende kode lave fejl.. derfor tilføjer jeg IsNumeric = false:

if request.form("count") = "0" or request.form("count") = "" or IsNumeric(request.form("count")) = false then


Jeg har også tilføjet et "check", der checker om det er en ny vare:

    fundet = "nej"
    for i = 0 to Ubound(arrVarerIKurven)
        if NyKode = arrVarerIKurven(i) then
            ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
            fundet = "ja"
            arrAntalAfVaren(i) = CInt(arrAntalAfVaren(i)) + request.form("count")
            exit for
        end if
    next

    if fundet = "nej" then
        ' vare blev ikke fundet i kurver.. altså er det en ny vare..
        redim preserve arrVarerIKurven(ubound(arrVarerIKurven) + 1) ' indsæt en plads mere i arrayen
        redim preserve arrAntalAfVaren(ubound(arrAntalAfVaren) + 1) ' indsæt en plads mere i arrayen
        arrVarerIKurven(ubound(arrVarerIKurven)) = NyKode ' indsæt varenummeret i arrayen
        arrAntalAfVaren(ubound(arrAntalAfVaren)) = request.form("count") ' indsæt antallet i arrayen
    end if

Af en eller anden mærkelig årsag, havde jeg lavet koden sådan, at man kunne tilføje 1 stk til en eksisterende vare :-)
Underligt.. menu nu er det rettet :-)


Resten af koden er den samme..


Og lige en sidste ting..
Du kan ikke stole på Request.Servervariables("HTTP_REFERER"), da det kan slået fra.. og det har jeg f.eks. gjort..

Jeg har lavet noget ASP kode, du kan bruge i stedet...

1) opret en ny ASP fil, med filnavnet "inc.asp". Den skal indeholder følgende linie:

<% Session("ref") = request.servervariables("path_info") %>


2) Indsæt denne linie, i bunden (som sidste linie af filerne) af de sider, der skal kunne "aflæses":

<!-- #include file="inc.asp" -->


3) Brugeren kommer fra:

session("ref")


Nu kan du f.eks. sendes brugeren tilbage med: response.redirect session("ref")

/theSurfer
Avatar billede fun22 Nybegynder
27. juni 2005 - 18:05 #15
Hej..

Der er noget galt med:

if fundet = "nej" then
        ' vare blev ikke fundet i kurver.. altså er det en ny vare..
        redim preserve arrVarerIKurven(ubound(arrVarerIKurven) + 1) ' indsæt en plads mere i arrayen
        redim preserve arrAntalAfVaren(ubound(arrAntalAfVaren) + 1) ' indsæt en plads mere i arrayen
        arrVarerIKurven(ubound(arrVarerIKurven)) = NyKode ' indsæt varenummeret i arrayen
        arrAntalAfVaren(ubound(arrAntalAfVaren)) = request.form("count") ' indsæt antallet i arrayen
    end if

For den tilføjer ikke en vare til kurven.. Nu kan den slet ikke tilføje noget til kurven..

Men kan det ikke have noget at gøre med at der ikke er noget i arry'en fra start af?
Avatar billede thesurfer Nybegynder
28. juni 2005 - 18:10 #16
Koden

    if fundet = "nej" then
        ' vare blev ikke fundet i kurver.. altså er det en ny vare..
        redim preserve arrVarerIKurven(ubound(arrVarerIKurven) + 1) ' indsæt en plads mere i arrayen
        redim preserve arrAntalAfVaren(ubound(arrAntalAfVaren) + 1) ' indsæt en plads mere i arrayen
        arrVarerIKurven(ubound(arrVarerIKurven)) = NyKode ' indsæt varenummeret i arrayen
        arrAntalAfVaren(ubound(arrAntalAfVaren)) = count ' indsæt antallet i arrayen
    end if

virker fint hos mig..



Min komplette test-kode (gemme ikke i session, se sidst i koden):

<%
Option Explicit
%>

<form name="frmbasket" action="index.asp" method="post">
Vare: <input type="text" name="id">
<br>
Antal: <input type="text" name="count">
<br>
<input type="submit" value="send">
</form>

<%
dim output, i
dim arrVarerIKurven, arrAntalAfVaren, NyKode, count
dim fundet

arrVarerIKurven = "" ' disse vare har kunden lagt i kurven
response.write "<br>Varer: " & arrVarerIKurven
  arrVarerIKurven = split(arrVarerIKurven, "|")

arrAntalAfVaren = "" ' antallet af varene i kurven
response.write "<br>Antal: " & arrAntalAfVaren
  arrAntalAfVaren = split(arrAntalAfVaren, "|")

response.write "<br><br>I kurven lægger der nu:<br><br>"
for output = 0 to ubound(arrVarerIKurven)
  response.write arrVarerIKurven(output) & ": " & arrAntalAfVaren(output) & "<br>"
next

if request.servervariables("request_method") = "POST" then
if request.form("id") = "" or request.form("count") = "0" or request.form("count") = "" or IsNumeric(request.form("count")) = false then
    response.write "<br><br><b>Du mangler at skrive varenummer og/eller antal!</b>"
else
    dim id: id = request.form("id")
'    NyKode = "bil" ' brugeren har lige tilføjet "bil" til kurven
    NyKode = id
    count = CInt(request.form("count"))

    response.write "<br>kunden har lige tilføjet <b>" & count & "x " & NyKode & "</b> til kurven"

    fundet = "nej"
    for i = 0 to Ubound(arrVarerIKurven)
        if NyKode = arrVarerIKurven(i) then
            ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
            fundet = "ja"
            arrAntalAfVaren(i) = CInt(arrAntalAfVaren(i)) + request.form("count")
            exit for
        end if
    next

    if fundet = "nej" then
        ' vare blev ikke fundet i kurver.. altså er det en ny vare..
        redim preserve arrVarerIKurven(ubound(arrVarerIKurven) + 1) ' indsæt en plads mere i arrayen
        redim preserve arrAntalAfVaren(ubound(arrAntalAfVaren) + 1) ' indsæt en plads mere i arrayen
        arrVarerIKurven(ubound(arrVarerIKurven)) = NyKode ' indsæt varenummeret i arrayen
        arrAntalAfVaren(ubound(arrAntalAfVaren)) = count ' indsæt antallet i arrayen
    end if

    response.write "<br><br>I kurven er der nu:<br><br>"

    for output = 0 to ubound(arrVarerIKurven)
        response.write arrVarerIKurven(output) & ": " & arrAntalAfVaren(output) & "<br>"
    next

    ' genopbyg session:
    dim tmpVarer, tmpAntal

    tmpVarer = ""
    tmpAntal = ""

    for i = 0 to ubound(arrVarerIKurven)
        tmpVarer = tmpVarer & arrVarerIKurven(i) & "|"
        tmpAntal = tmpAntal & arrAntalAfVaren(i) & "|"
    next

    ' man skal huske at fjerne de sidste auto-genererede "|":
    tmpVarer = left(tmpVarer, len(tmpVarer) - 1)
    tmpAntal = left(tmpAntal, len(tmpAntal) - 1)

    response.write "<br>"
    response.write "<br>Varer: " & tmpVarer
    response.write "<br>Antal: " & tmpAntal

    ''session("Varenr") = tmpVarer ' fjern kommentering for at afvikle koden
    ''session("Antal") = tmpAntal ' fjern kommentering for at afvikle koden

end if ' varenummer og/eller antal
end if ' post

%>

/theSurfer
Avatar billede thesurfer Nybegynder
28. juni 2005 - 18:13 #17
Har tilføjet noget "Kurven er tom!"-kode:

<%
Option Explicit
%>

<form name="frmbasket" action="index.asp" method="post">
Vare: <input type="text" name="id">
<br>
Antal: <input type="text" name="count">
<br>
<input type="submit" value="send">
</form>

<%
dim output, i
dim arrVarerIKurven, arrAntalAfVaren, NyKode, count
dim fundet

arrVarerIKurven = "" ' disse vare har kunden lagt i kurven
response.write "<br>Varer: " & arrVarerIKurven
  arrVarerIKurven = split(arrVarerIKurven, "|")

arrAntalAfVaren = "" ' antallet af varene i kurven
response.write "<br>Antal: " & arrAntalAfVaren
  arrAntalAfVaren = split(arrAntalAfVaren, "|")

if ubound(arrVarerIKurven) = -1 then
    response.write "<br><br><b>Kurven er tom!</b><br><br>"
else
    response.write "<br><br>I kurven lægger der nu:<br><br>"
    for output = 0 to ubound(arrVarerIKurven)
      response.write arrVarerIKurven(output) & ": " & arrAntalAfVaren(output) & "<br>"
    next
end if

if request.servervariables("request_method") = "POST" then
if request.form("id") = "" or request.form("count") = "0" or request.form("count") = "" or IsNumeric(request.form("count")) = false then
    response.write "<br><br><b>Du mangler at skrive varenummer og/eller antal!</b>"
else
    dim id: id = request.form("id")
'    NyKode = "bil" ' brugeren har lige tilføjet "bil" til kurven
    NyKode = id
    count = CInt(request.form("count"))

    response.write "<br>kunden har lige tilføjet <b>" & count & "x " & NyKode & "</b> til kurven"

    fundet = "nej"
    for i = 0 to Ubound(arrVarerIKurven)
        if NyKode = arrVarerIKurven(i) then
            ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
            fundet = "ja"
            arrAntalAfVaren(i) = CInt(arrAntalAfVaren(i)) + request.form("count")
            exit for
        end if
    next

    if fundet = "nej" then
        ' vare blev ikke fundet i kurver.. altså er det en ny vare..
        redim preserve arrVarerIKurven(ubound(arrVarerIKurven) + 1) ' indsæt en plads mere i arrayen
        redim preserve arrAntalAfVaren(ubound(arrAntalAfVaren) + 1) ' indsæt en plads mere i arrayen
        arrVarerIKurven(ubound(arrVarerIKurven)) = NyKode ' indsæt varenummeret i arrayen
        arrAntalAfVaren(ubound(arrAntalAfVaren)) = count ' indsæt antallet i arrayen
    end if

    response.write "<br><br>I kurven er der nu:<br><br>"

    for output = 0 to ubound(arrVarerIKurven)
        response.write arrVarerIKurven(output) & ": " & arrAntalAfVaren(output) & "<br>"
    next

    ' genopbyg session:
    dim tmpVarer, tmpAntal

    tmpVarer = ""
    tmpAntal = ""

    for i = 0 to ubound(arrVarerIKurven)
        tmpVarer = tmpVarer & arrVarerIKurven(i) & "|"
        tmpAntal = tmpAntal & arrAntalAfVaren(i) & "|"
    next

    ' man skal huske at fjerne de sidste auto-genererede "|":
    tmpVarer = left(tmpVarer, len(tmpVarer) - 1)
    tmpAntal = left(tmpAntal, len(tmpAntal) - 1)

    response.write "<br>"
    response.write "<br>Varer: " & tmpVarer
    response.write "<br>Antal: " & tmpAntal

    ''session("Varenr") = tmpVarer ' fjern kommentering for at afvikle koden
    ''session("Antal") = tmpAntal ' fjern kommentering for at afvikle koden

end if ' varenummer og/eller antal
end if ' post

%>

/theSurfer
Avatar billede thesurfer Nybegynder
28. juni 2005 - 18:17 #18
Har lige rette en fejl :-)

<%
Option Explicit
%>

<form name="frmbasket" action="index.asp" method="post">
Vare: <input type="text" name="id">
<br>
Antal: <input type="text" name="count">
<br>
<input type="submit" value="send">
</form>

<%
dim output, i
dim arrVarerIKurven, arrAntalAfVaren, NyKode, count
dim fundet

arrVarerIKurven = "" ' disse vare har kunden lagt i kurven
  arrVarerIKurven = split(arrVarerIKurven, "|")

arrAntalAfVaren = "" ' antallet af varene i kurven
  arrAntalAfVaren = split(arrAntalAfVaren, "|")

if request.servervariables("request_method") = "POST" then

if request.form("id") = "" or request.form("count") = "0" or request.form("count") = "" or IsNumeric(request.form("count")) = false then
    response.write "<br><br><b>Du mangler at skrive varenummer og/eller antal!</b>"
else
    dim id: id = request.form("id")
'    NyKode = "bil" ' brugeren har lige tilføjet "bil" til kurven
    NyKode = id
    count = CInt(request.form("count"))

    response.write "<br>kunden har lige tilføjet <b>" & count & "x " & NyKode & "</b> til kurven"

    fundet = "nej"
    for i = 0 to Ubound(arrVarerIKurven)
        if NyKode = arrVarerIKurven(i) then
            ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
            fundet = "ja"
            arrAntalAfVaren(i) = CInt(arrAntalAfVaren(i)) + request.form("count")
            exit for
        end if
    next

    if fundet = "nej" then
        ' vare blev ikke fundet i kurver.. altså er det en ny vare..
        redim preserve arrVarerIKurven(ubound(arrVarerIKurven) + 1) ' indsæt en plads mere i arrayen
        redim preserve arrAntalAfVaren(ubound(arrAntalAfVaren) + 1) ' indsæt en plads mere i arrayen
        arrVarerIKurven(ubound(arrVarerIKurven)) = NyKode ' indsæt varenummeret i arrayen
        arrAntalAfVaren(ubound(arrAntalAfVaren)) = count ' indsæt antallet i arrayen
    end if

    response.write "<br><br>I kurven er der nu:<br><br>"

    for output = 0 to ubound(arrVarerIKurven)
        response.write arrVarerIKurven(output) & ": " & arrAntalAfVaren(output) & "<br>"
    next

    ' genopbyg session:
    dim tmpVarer, tmpAntal

    tmpVarer = ""
    tmpAntal = ""

    for i = 0 to ubound(arrVarerIKurven)
        tmpVarer = tmpVarer & arrVarerIKurven(i) & "|"
        tmpAntal = tmpAntal & arrAntalAfVaren(i) & "|"
    next

    ' man skal huske at fjerne de sidste auto-genererede "|":
    tmpVarer = left(tmpVarer, len(tmpVarer) - 1)
    tmpAntal = left(tmpAntal, len(tmpAntal) - 1)

    response.write "<br>"
    response.write "<br>Varer: " & tmpVarer
    response.write "<br>Antal: " & tmpAntal

    ''session("Varenr") = tmpVarer ' fjern kommentering for at afvikle koden
    ''session("Antal") = tmpAntal ' fjern kommentering for at afvikle koden

end if ' varenummer og/eller antal

else ' post
    response.write "<br><br><b>Kurven er tom!</b><br><br>"

end if ' post

%>

/theSurfer
Avatar billede thesurfer Nybegynder
28. juni 2005 - 18:19 #19
Jeg kan blive ved...... :-)

Smider kun en linie (kig i bunden af den sidste kode, jeg smed in):

    if ubound(arrVarerIKurven) = -1 then response.write "<br><br><b>Kurven er tom!</b><br><br>"

Jeg har tilføjet: if ubound(arrVarerIKurven) = -1 then

/theSurfer
Avatar billede thesurfer Nybegynder
28. juni 2005 - 18:23 #20
Dammit.. nu laver jeg sq et fungerende eksempel, med sessions! gider ikke det der fejl-halløj mere :-)

/theSurfer
Avatar billede thesurfer Nybegynder
28. juni 2005 - 20:05 #21
Jeg har lige siddet og kæmpet med det sk!de script, i 1½ time! Nu finder jeg ud af, at jeg har brugt et forkert navn til sessionen! :-)

Jeg brugte "Varer".. du bruger "Varenr" ! :-)

Her er test-kode, med sessions, der virker :-)

<% Option Explicit %>

<form name="frmbasket" action="index.asp" method="post">
Vare: <input type="text" name="id">
<br>
Antal: <input type="text" name="count">
<br>
<input type="submit" value="send">
</form>


<%
dim output, i
dim arrVarerIKurven, arrAntalAfVaren, NyKode, count
dim fundet
dim tmpItems, tmpCount

arrVarerIKurven = "" & session("Varenr") '"" ' disse vare har kunden lagt i kurven
  arrVarerIKurven = split(arrVarerIKurven, "|")

arrAntalAfVaren = "" & session("Antal") '"" ' antallet af varene i kurven
  arrAntalAfVaren = split(arrAntalAfVaren, "|")

if ubound(arrVarerIKurven) > -1 then

response.write "I kurven ligger der: <br>"

    for i = LBound(arrVarerIKurven) to ubound(arrVarerIKurven)
        response.write "<br>"
        response.write arrVarerIKurven(i) & ": " & arrAntalAfVaren(i)
    next
else
    response.write "Kurven er tom!"
end if


if request.servervariables("request_method") = "POST" then

if request.form("id") = "" or request.form("count") = "0" or request.form("count") = "" or IsNumeric(request.form("count")) = false then
    response.write "<br><br><b>Du mangler at skrive varenummer og/eller antal!</b>"
else
    dim id: id = request.form("id")
'    NyKode = "bil" ' brugeren har lige tilføjet "bil" til kurven
    NyKode = id
    count = CInt(request.form("count"))

    response.write "<br>kunden har lige tilføjet <b>" & count & "x " & NyKode & "</b> til kurven"

    fundet = "nej"
    for i = 0 to Ubound(arrVarerIKurven)
        if NyKode = arrVarerIKurven(i) then
            ' NyKode var lig med "næværende kode i arrVarerIKurven" = findes allerede
            fundet = "ja"
            arrAntalAfVaren(i) = CInt(arrAntalAfVaren(i)) + request.form("count")
            exit for
        end if
    next

    if fundet = "nej" then
        ' vare blev ikke fundet i kurver.. altså er det en ny vare..
        redim preserve arrVarerIKurven(ubound(arrVarerIKurven) + 1) ' indsæt en plads mere i arrayen
        redim preserve arrAntalAfVaren(ubound(arrAntalAfVaren) + 1) ' indsæt en plads mere i arrayen
        arrVarerIKurven(ubound(arrVarerIKurven)) = NyKode ' indsæt varenummeret i arrayen
        arrAntalAfVaren(ubound(arrAntalAfVaren)) = count ' indsæt antallet i arrayen
    end if

    response.write "<br><br>I kurven er der nu:<br><br>"

    for output = 0 to ubound(arrVarerIKurven)
        response.write arrVarerIKurven(output) & ": " & arrAntalAfVaren(output) & "<br>"
    next

    ' genopbyg session:
    dim tmpVarer, tmpAntal

    tmpVarer = ""
    tmpAntal = ""

    for i = 0 to ubound(arrVarerIKurven)
        tmpVarer = tmpVarer & arrVarerIKurven(i) & "|"
        tmpAntal = tmpAntal & arrAntalAfVaren(i) & "|"
    next

    ' man skal huske at fjerne de sidste auto-genererede "|":
    tmpVarer = left(tmpVarer, len(tmpVarer) - 1)
    tmpAntal = left(tmpAntal, len(tmpAntal) - 1)

    response.write "<br>"
    response.write "<br>Varer: " & tmpVarer
    response.write "<br>Antal: " & tmpAntal

    session("Varenr") = tmpVarer ' fjern kommentering for at afvikle koden
    session("Antal") = tmpAntal ' fjern kommentering for at afvikle koden

    response.redirect request.servervariables("script_name") ' du kan bare fjerne denne linie
end if ' varenummer og/eller antal

else ' post
    if ubound(arrVarerIKurven) = -1 then response.write "<br><br><b>Kurven er tom!</b><br><br>"

end if ' post

%>

/theSurfer
Avatar billede thesurfer Nybegynder
28. juni 2005 - 20:08 #22
PS: Jeg havde lavet en "slet vare"-funktion.. det var der jeg brugte "Varer" i stedet for "Varenr"..

Jeg har testet koden, og den virker fint..

Sig lige til, hvis der er problemer..

PS: .. tror godt at du kan lukke http://www.eksperten.dk/spm/624774 .. skriv lige at de kan komme over i dette spm, hvis de vil.. :-)

/theSurfer
Avatar billede fun22 Nybegynder
30. juni 2005 - 18:17 #23
Det er bare helt kanont det der.. Jeg takker mange gange for din hjælpsomhed..

Smider du lige et svar?
Avatar billede thesurfer Nybegynder
01. juli 2005 - 01:56 #24
Yeps :-)

/theSurfer
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