Avatar billede paradux Nybegynder
09. december 2004 - 21:56 Der er 10 kommentarer og
1 løsning

Hvordan laver jeg en indkøbskurv?

Hej

Jeg er igang med at programmere en webshop og indtil videre er det gået smertefrit. Jeg kører den via en MySQL databasen som indeholder alle kategorier samt varer med varenr, priser osv.

Fra sitet af har jeg lavet ved hvert produkt en form som sender varenr samt antal til addproduct.asp

Men her kommer mit problem. Hvordan overføre jeg varenumrene til indkøbskurven? Skal jeg bruge cookies eller sessions? Og hvordan?

Jeg har læst en masse sourcecodes igennem, men har ikke kunne lure hvordan man gør, så det jeg søger er en måde på hvordan jeg overfører varenumrene over til indkøbskurven hvor jeg derefter kan hente navn, pris osv. fra databasen.

På forhånd tak for hjælpen
Avatar billede hojben Novice
09. december 2004 - 22:07 #1
fungerer ASP sammen med MySQL ?
Avatar billede paradux Nybegynder
09. december 2004 - 22:36 #2
Ja intet problem i det....
Avatar billede hojben Novice
09. december 2004 - 22:38 #3
okidokki ;)
Avatar billede thesurfer Nybegynder
10. december 2004 - 00:18 #4
Du gemmer bare dine data i en session, eller cookie.. som du selv har skrevet.

Se:
Sessions - http://www.html.dk/tutorials/asp/lektion12.asp
Cookies - http://www.html.dk/tutorials/asp/lektion13.asp
Avatar billede thesurfer Nybegynder
10. december 2004 - 00:21 #5
Eksempel (navnet man kan se på websitet|beskrivelsen|id nummeret|prisen):

Sokker|dejlige sokker|12|25 kr
Bukser|et er andet mærke|13|100 kr

Når du så smider dem ind i 1 session:
Sokker|dejlige sokker|12|25*_*Bukser|et er andet mærke|13|100

Så skal du bare lave den om til et array (faktisk 2): http://www.html.dk/tutorials/asp/lektion8.asp
Avatar billede thesurfer Nybegynder
10. december 2004 - 00:22 #6
Først splitter du ved "*_*" (hvis du har valgt de tegn), så du kan få splitet varerne op..
Derefter splitter du ved "|" for at kunne se navn, beskrivelse, id og pris.
Avatar billede pelskee Nybegynder
10. december 2004 - 09:59 #7
jeg ligger IDprodukt og session i en database hver gang brugeren smider noget nyt i kurven. så kan du hele tiden hente det frem og vise det senere i et backend modul hvor du eksempelvis kobler det sammen med kundeinfo eller lign.
Avatar billede montago Praktikant
11. december 2004 - 02:02 #8
her er noget at bixe med

<%
    If Request("ID") <> "" then
        'TILFØJ ITEM
        Session("basket") = Session("basket") & "#" & Request("ID") & "¤" & Request("stk")
    elseif Request("remove") <> "" then
        'FJERNER ALLE SOM ER MAGEN TIL
        Session("basket") = Replace(Session("basket"), "#" & Request("ID") & "¤" & Request("stk") , "")
    end if
    basketArr = split(Session("basket"),"#")
   
    For each item in basketArr
        vareARR = split(item,"¤")
        Set rs = conn.execute("Select varenavn," & vareARR(1) & " * VareStkPris as PRIS from Sortiment where VareID = " & vareARR(0)
       
        Response.Write "<input type=text value=" & vareARR & ">&nbsp;&nbsp;" & rs("varenavn") & " = " & rs("PRIS") & "<br>"
    Next
%>
Avatar billede montago Praktikant
11. december 2004 - 02:04 #9
her med fjernelse af vare...

<%
    If Request("ID") <> "" then
        'TILFØJ ITEM
        Session("basket") = Session("basket") & "#" & Request("ID") & "¤" & Request("stk")
    elseif Request("remove") <> "" then
        'FJERNER ALLE SOM ER MAGEN TIL
        Session("basket") = Replace(Session("basket"), "#" & Request("ID") & "¤" & Request("stk") , "")
    end if
    basketArr = split(Session("basket"),"#")
   
    For each item in basketArr
        vareARR = split(item,"¤")
        Set rs = conn.execute("Select varenavn," & vareARR(1) & " * VareStkPris as PRIS from Sortiment where VareID = " & vareARR(0)
       
        Response.Write "<input type=text value=" & vareARR(1) & ">&nbsp;&nbsp;" & rs("varenavn") & " = " & rs("PRIS") & "<br>"
        Response.Write "<a href=""?remove=#" & vareARR(0) & "¤" &  vareARR(1) & """>Fjern</a><br>"
    Next
   
%>
Avatar billede paradux Nybegynder
13. december 2004 - 23:26 #10
Tak for alle svarene.. I må undskylde ventetiden..

Montago, jeg har leget lidt med din kode der, men ender desværre med fejlmelding.. Jeg har delt den lidt op, således:
addproduct.asp:
<%
    If Request("productID") <> "" then
        'TILFØJ ITEM
        Session("basket") = Session("basket") & "#" & Request("productID") & "¤" & Request("antal")
        Response.Redirect("kurv.asp")
    elseif Request("remove") <> "" then
        'FJERNER ALLE SOM ER MAGEN TIL
        Session("basket") = Replace(Session("basket"), "#" & Request("productID") & "¤" & Request("antal") , "")
        Response.Redirect("kurv.asp")
    end if
%>

Og kurv.asp:
<%
basketArr = split(Session("basket"),"#")
Response.Write Session("basket")

For each item in basketArr
        vareARR = split(item,"¤")
 
        strSQL = "Select title," & vareARR(1) & " * Price as PRIS from shop_products where productID = " & vareARR(0)
        Set rs = myConn.Execute(strSQL)
       
        Response.Write "<input type=text value=" & vareARR(1) & ">&nbsp;&nbsp;" & rs("title") & " = " & rs("PRIS") & "<br>"
        Response.Write "<a href=""?remove=#" & vareARR(0) & "¤" &  vareARR(1) & """>Fjern</a><br>"
Next 
%>

Men nok om det, for jeg får allerede en fejl ved linie 12 som er:
strSQL = "Select title," & vareARR(1) & " * Price as PRIS from shop_products where productID = " & vareARR(0)

Fejl:
Sun ONE ASP VBScript runtime (0x800A0009)
Subscript out of range

Hvad er der galt?
Avatar billede paradux Nybegynder
21. februar 2005 - 23:09 #11
Lukket..
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