Avatar billede sirius Nybegynder
07. januar 2000 - 20:51 Der er 14 kommentarer og
1 løsning

Inkøbskurv

Hvordan laver man en smart indkøbskurv..
jeg havde selv tænkt på noget med en cookie men det kan jeg ikke finde ud af hvis der skal være mere end en vare...

det skal skal gemmes i inkøbskruven er varens ID...

Hvordan skal man lave sådan en inkøbskruv ??
Avatar billede jannick Nybegynder
07. januar 2000 - 22:04 #1
Jeg har lavet en hvor jeg brugger et session-array til at gemme dataene. At jeg har lavet det er måske kun 50% af sandheden, da jeg har fået utrolig meget hjælp af denne gruppe. Så find pointne frem, og gå igang.
Avatar billede sirius Nybegynder
07. januar 2000 - 22:09 #2
Så find pointne frem, og gå igang. 
betyder det at hvis du får nogel flere points så får jeg scriptet ??
Avatar billede jannick Nybegynder
07. januar 2000 - 23:22 #3
Nej. For det første synes jeg at du ligeså godt selv kan lave det hvis du vil til at lære ASP. Det er en glimrende måde, da man kommer omkring alle de grundlæggende ting. DB'er, Sessions, redirect osv. For det andet er jeg ved at omforme scriptet til et andet firmas hjemmeside, og jeg tror ikke de bliver så glade hvis jeg bare giver det væk.
Avatar billede sirius Nybegynder
07. januar 2000 - 23:41 #4
Jeg kan godt DB'er Sessions redirecte

men hvis jeg skulle lave en session kan jeg kun finde ud af at ligge alle de forskellige vare ind i den men ikke trække dem ud igen til flere varer !!
Avatar billede jannick Nybegynder
08. januar 2000 - 00:04 #5
Det er fordi du ikke skal have en normal Session variabel. Du skal have defineret et array i en Session. Hvis du kigger lidt tilbage i de besvarede spørgsmål her på eksperten, vil du finde en HULENS mange spørgsmål fra mig, om bla. arrays. Der er ingen grund til at du skal til at stille de samme spørgsmål igen.
Avatar billede hektor Nybegynder
08. januar 2000 - 03:39 #6
Her er hvad jeg har gjort (virker kun med cookies):
1) Opret en tabel i en database med felterne [SessionID], [Varenummer], [Antal] og [BasketID]. Sæt Basket ID som nøgle.
2) Når en bruger tilføjer noget til kurven, så tjekker du for om varenummeret allerede er i kurven (self kun for det SessionID som kunden bruger), hvis den er, så øger du antallet, ellers tilføjer du den som ny post.

Jeg gider ikke lige poste koden (dovenskaben længe leve), men det kan jo være at du hellere selv vil rode lidt med det ... hehe.

Sig til hvis du vil have den kode jeg bruger.
Avatar billede sirius Nybegynder
08. januar 2000 - 11:54 #7
Hektor > hvis du giver mig koden får du poitsne..
Avatar billede hektor Nybegynder
08. januar 2000 - 17:06 #8
den kommer lige til at fylde et par kommentarer ...
Avatar billede hektor Nybegynder
08. januar 2000 - 17:07 #9
<-- start addtobasket.asp -->
<!--#include file="almindelige-funktioner.asp"-->
<%
VareNummer = request("VareNummer")
set VareListe = conntemp.Execute("SELECT * FROM Varer WHERE VareNummer = '" & VareNummer & "';")
IF VareListe.EOF = TRUE THEN
    response.redirect("visbasket.asp")
END IF
Antal = request("Antal")
IF IsNumeric(Antal) = False THEN
    response.redirect("visbasket.asp")
END IF
Antal = Int( Antal )
IF Antal > 0 THEN
    set BasketListe = conntemp.execute("SELECT * FROM ShoppingBasket WHERE VareNummer = '" & VareNummer & "' AND SessionID = '" & Session.SessionID & "';")
    IF BasketListe.EOF = TRUE THEN
        Set VareListe = Server.CreateObject("ADODB.Recordset")
        VareListe.Open "SELECT * FROM ShoppingBasket", conntemp, 3, 3
            VareListe.AddNew
            VareListe("VareNummer") = VareNummer
            VareListe("Antal") = Antal
            VareListe("SessionID") = Session.SessionID
        VareListe.Update
        VareListe.Close
    ELSE
        GammeltAntal = BasketListe("Antal")
        Set VareListe = Server.CreateObject("ADODB.Recordset")
        VareListe.Open "SELECT * FROM ShoppingBasket WHERE BasketID = " & BasketListe("BasketID") & ";", conntemp, 3, 3
            VareListe.Update
            VareListe("Antal") = Antal + GammeltAntal
            VareListe("SessionID") = Session.SessionID
        VareListe.Update
        VareListe.Close
       
    END IF
END IF
response.redirect("index.asp")
%>
<-- slut addtobasket.asp -->
Avatar billede hektor Nybegynder
08. januar 2000 - 17:07 #10
<-- start emptybasket.asp -->
<!--#include file="almindelige-funktioner.asp"-->
<%
conntemp.Execute "DELETE * FROM ShoppingBasket WHERE SessionID = '" & Session.SessionID & "';"
response.redirect("index.asp")
%>
<-- slut emptybasket.asp -->
Avatar billede hektor Nybegynder
08. januar 2000 - 17:09 #11
<-- start almindelige-funktioner.asp -->
<%
Response.Buffer = true
Session.LCID = 1030

set conntemp=server.createobject("adodb.connection")

' DSNless connection to Access Database
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("..\..\database\klomp.mdb") ' databasen er lagt uden for www-scope
conntemp.Open DSNtemp
' DSNless connection to Access Database
%>
<-- slut almindelige-funktioner.asp -->
Avatar billede hektor Nybegynder
08. januar 2000 - 17:10 #12
<-- start visbasket.asp -->
<!--#include file="almindelige-funktioner.asp"-->
<%
set BasketListe = conntemp.execute( "SELECT * FROM ShoppingBasket WHERE SessionID = '" & Session.SessionID & "';" )
%>
<table border="1">
<tr>
    <td width="100">Tilføj</td>
    <td width="170">Vare</td>
    <td width="100">Antal</td>
    <td width="140">På Lager</td>
    <td width="90">Pris/stk</td>
    <td width="90">Pris ialt</td>
    <td width="100">Slet</td>
</tr>
<%
DO UNTIL BasketListe.EOF
VareNummer = BasketListe("VareNummer")
set VareListe = conntemp.Execute("SELECT * FROM Varer WHERE VareNummer = '"&VareNummer&"' ;")
LagerAntal = VareListe("AntalPåLager")
VareAntal = BasketListe("Antal")
Pris = VareListe("PrisUdenMoms") * 1.25
TotalPris = TotalPris + ( Pris * VareAntal )
Weight = Weight + ( VareListe("Vægt") * VareAntal )
BasketID = BasketListe("BasketID")
%>
<tr>
    <form action="addtobasket.asp">
        <td>
            <input type="text" name="antal" value="1" size="2" maxlength="2">
            <input type="hidden" name="varenummer" value="<%= VareNummer %>">
            <input type="submit" value="Tilføj">
        </td>
    </form>
    <td>
        <%
            Response.Write( "<A HREF='skiftvare.asp?varenummer=" & VareNummer & "'>" & VareListe("VareNavn") & "</a>" )
        %>
    </td>
    <td><%= VareAntal %></td>
    <td>
        <%
            if LagerAntal >= VareAntal THEN
                response.write( "Ja. Der er " & LagerAntal & " p&aring; lager." )
            else
                response.write( "Nej. Der er " & LagerAntal & " p&aring; lager." )
            end if
        %>
    </td>
    <td align="right">
    <%
    response.write( formatcurrency( Pris ) )
    %>
    </td>
    <td align="right">
    <%
    response.write( formatcurrency( Pris * VareAntal ) )
    %>
    </td>
    <form action="removefrombasket.asp">
    <td>
    <input type="text" name="Antal" value="1" size="2" maxlength="2">
    <input type="submit" value="Slet">
    <input type="hidden" name="vare" value="<%= BasketID %>">
    </td>
    </form>
</tr>
<%
BasketListe.MoveNext
set VareListe = Nothing
LOOP
set BasketListe = Nothing
%>
<tr>
    <td>Vægt: <%=  Round( Weight,3 ) %> kg</td>
    <td align="right">Forventet porto:
    <% 
    if Weight <= 0 then
        response.write( formatcurrency( 0 ) )
    else
        Weight = replace( Weight, ",", "." )       
        set portoliste = conntemp.execute( "SELECT TOP 1 * FROM PORTO WHERE Vægt >= " & Weight & " ;" )
        if PortoListe.EOF = false then
            response.write( formatcurrency( PortoListe("Porto") ) )
        else
            response.write( "999.00 kroner <br> (over max i databasen)" )
        end if
    end if
    %>
    </td>
    <td>
    <%
    if Weight <> 0 then
        response.write( "<a href='emptybasket.asp'>Fjern Alle Varer</a>")
    else
        response.write( "Fjern Alle Varer" )
    end if
    %>
    </td>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
    <td align="right"><%= formatcurrency( ( TotalPris ) ) %></td>

    <td>
    <%
    if Weight <> 0 then
        response.write( "<a href='gokasse.asp'>Gå Til Kassen</a>")
    else
        response.write( "Gå Til Kassen" )
    end if
    %>
    </td>
</tr>
</table>
<-- slut visbasket.asp -->
Avatar billede hektor Nybegynder
08. januar 2000 - 17:11 #13
<-- start removefrombasket.asp -->
<!--#include file="almindelige-funktioner.asp"-->
<%
Antal = request("antal")
BasketID = request("vare")
if IsNumeric( Antal ) = false then
    response.redirect("visbasket.asp")
end if
if Antal <= 0 then
    response.redirect("visbasket.asp")
end if
set BasketListe = conntemp.execute("SELECT * FROM ShoppingBasket WHERE BasketID = " & BasketID & " AND SessionID = '" & Session.SessionID & "';")
Set VareListe = Server.CreateObject("ADODB.Recordset")
GammeltAntal = BasketListe("Antal")
VareListe.Open "SELECT * FROM ShoppingBasket WHERE BasketID = " & BasketListe("BasketID") & ";", conntemp, 3, 3
    VareListe.Update
    VareListe("Antal") = GammeltAntal - Antal
    VareListe("SessionID") = Session.SessionID
VareListe.Update

set VareListe = conntemp.execute("SELECT * FROM ShoppingBasket WHERE BasketID = " & BasketID & " AND SessionID = '" & Session.SessionID & "';")
if VareListe("Antal") <= 0 THEN
    conntemp.execute "DELETE * FROM ShoppingBasket WHERE SessionID = '" & Session.SessionID & "' AND BasketID = " & BasketID & ";"
end if
VareListe.Close
response.redirect("index.asp")
%>
<-- slut removefrombasket.asp -->
Avatar billede hektor Nybegynder
08. januar 2000 - 17:12 #14
det BURDE være de jeg bruger ... jeg vil ikke lige garantere det ... hehe

men det burde give dig en MEGET god ide om hvordan du kan lave det.

PS - damn jeg skriver hurtigt - hva?
Avatar billede sirius Nybegynder
09. januar 2000 - 16:25 #15
Tak det var lige det jeg søgte :)
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