Avatar billede fastwrite Nybegynder
22. august 2003 - 08:51 Der er 32 kommentarer og
1 løsning

Vise hvad der er trykket på i en e-shop

Hej med jer.

Jeg fusker lidt med noget asp til min hustrus hjemmeside der skal sælge nogle kort og gaveartikler hun selv har lavet, og jeg er kommet så langt, at når jeg trykker "bestil vare", så viser den hvor meget brugeren har bestilt. Men problemet er at den viser denne information på sin EGEN side.

Jeg har lavet følgende kode:

Bestillingsknappen man trykker på:
<form name="form1" method="post" action="shop.asp?mode=tilkurv&kode=<%=rst("id")%>&pris=<%=rst("pris")%>">
                    <input type="submit" name="antal" value="Bestil produkt">

selve siden hvor knappen er, hedder shop.asp

koden der finder ud af om der er lagt noget i eller ej:

If Request("mode") = "tilkurv" Then

    'tjekker om antallet man har skrevet er et tal eller ingen tegn
    If IsNumeric(request.form("antal")) or request.form("antal") = "" Then

        'Skriver antallet i en variabel
        if request.form("antal") = "" then
            antal = 1
        else
            antal = request.form("antal")
        end if
       

    if session("kurvnr") = "" or session("kurvnr") = 0 then
    session("kurvnr") = 1
    else
    session("kurvnr") = session("kurvnr") + 1
    end if

    session("vare" & session("kurvnr")) = request("kode") & " " & antal
    session("kode" & request("kode")) = session("kurvnr")

    else
    antal2 = Split(session("vare" & session("kode" & request("kode"))), " ")
    session("vare" & session("kode" & request("kode"))) = request("kode") & " " & Int(antal) + antal2(1)

    end if
    end if
    end if
---------------------------------------------------------
nogen asp-hajer der kan hjælpe mig lidt videre?
Avatar billede -thomas- Nybegynder
22. august 2003 - 08:55 #1
Jeg er ikke sikker på, at jeg forstår problemet, kan du uddybe det lidt?
Avatar billede fastwrite Nybegynder
22. august 2003 - 09:05 #2
Hej Thomas - (fedt navn - hedder det selv).
Du ved, at når man har trykket på en bestil knap, så opdaterer siden lige, og viser nu at du har bestilt "1 stk. PC med alt hardware - pris 10.000". Problemet med min er, at den viser denne information på en anden side, end den side hvor man har trykket på bestillingsknappen, hvilket den ikke skal.
Avatar billede -thomas- Nybegynder
22. august 2003 - 09:07 #3
hehe, :)

Ligger din form på shop.asp? Formens action skal sættes til samme side, som selve formen ligger på. Eller har jeg misforstået noget?

Dens action er jo lige nu shop.asp?mode=tilkurv, og der ligger formen jo ikke selv?
Avatar billede -thomas- Nybegynder
22. august 2003 - 09:08 #4
Det er jo kun det inden for

If Request("mode") = "tilkurv" Then

End If

der bliver vist når du har trykket på formen.
Avatar billede mm12010 Nybegynder
22. august 2003 - 09:12 #5
må vi se resten af koden til shop.asp
Avatar billede fastwrite Nybegynder
22. august 2003 - 09:13 #6
Ja, min form ligger på shop.asp - og min mode=tilkurv ligger også i shop.asp

og ja, når jeg har trykket på bestil knappen, åbner der sig nu et nyt vindue, hvor der kun står "1 stk. bla bla - pris 100,-" <<-- Dén tekst vil jeg have på shop.asp nederst i stedet for som nu at blive åbnet i eget vindue.
Avatar billede fastwrite Nybegynder
22. august 2003 - 09:17 #7
I får lige hele koden til min shop.asp :

<% @ LANGUAGE = VBScript %>
<%
' Vi åbner forbindelse til databasen
Dim con
Set con = Server.CreateObject("ADODB.Connection")

con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" &_
"Data Source=D:\mrsskipper.dk\database\produkter.mdb;" &_
"Persist Security Info=False;"
%>
<%
Dim rst
Set rst = Server.CreateObject("ADODB.Recordset")

Dim strSQL

if request("mode") = "" then
strSql = "Select * from qryProdukter"
%>
<%
rst.Open strSQL, con, 3, 1, 1
%>

<% billede = rst("thumbs") %>
<% billedestor = rst("billedenavn") %>

<html>
---->> unødvendig kode ----<<<

<% do while not rst.EOF %>
            <table width="800" border="0" cellspacing="0" cellpadding="0">
              <tr>
                <td width="198" valign="top"><pre>Kategori: <%=rst("kategori")%>
Billedenr.: <%=rst("id")%>
Pris: <%=rst("pris")%> kroner.</pre></td>
                <td width="21" rowspan="2" valign="top"><table border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td>&nbsp;</td>
                    </tr>
                  </table></td>
                <td width="581" rowspan="4" align="right" valign="top"> <a href="java script:openWin('/html/galleripopup.asp?kode=<%=rst("id")%>');">
                  <% response.write "<img border=""1"" src=""" & rst("thumbs") & """>"%>
                  </A> </td>
              </tr>
              <tr>
                <td valign="top">&nbsp;</td>
              </tr>
              <tr>
                <td valign="top">&nbsp;</td>
                <td width="21" valign="top"></td>
              </tr>
              <tr>
                <td width="198" valign="top"></td>
                <td width="21" valign="top"></td>
              </tr>
              <tr>
                <td valign="top"></td>
                <td width="21" valign="top"></td>
                <td width="581" valign="top">

<form method="post" action="shop.asp?mode=tilkurv&kode=<%=rst("id")%>&pris=<%=rst("pris")%>">
                        <input type="submit" value="Bestil vare">
                  </form></td>
              </tr>
              <tr bgcolor="#666666">
                <td colspan="3" height="2"></td>
              </tr>
            </table>
            <% rst.movenext
            Loop %>
            <% end if %>
            <a href="kurv.asp">Se kurvens indhold</a></tr>
      </table></td>
          </tr>
        </table>


<tr>
    <td>
<%
'\\ Start ASP'en når man lægger noget i indkøbskurven
If Request("mode") = "tilkurv" Then

    '\\ Start Tjekker om Antallet man har skrevet er et tal eller ingen tegn
    If IsNumeric(request.form("antal")) or request.form("antal") = "" Then

        '\\ Start Skriver antallet i en variabel
        if request.form("antal") = "" then
            antal = 1
        else
            antal = request.form("antal")
        end if
        '// Slut Skriver antallet i en variabel

        '\\ Start Tjekker om stregkoden allerede er lagt i db'en en gang
        if session("kode" & request("kode")) = "" then

            '\\ Start hvis ikke stregkoden findes i en session

            if session("kurvnr") = "" or session("kurvnr") = 0 then
                session("kurvnr") = 1
            else
                session("kurvnr") = session("kurvnr") + 1
            end if

            session("vare" & session("kurvnr")) = request("kode") & " " & antal
            session("kode" & request("kode")) = session("kurvnr")

            '// Slut hvis ikke stregkoden findes i en session

        else

            '\\ Start hvis stregkoden findes i en session

            antal2 = Split(session("vare" & session("kode" & request("kode"))), " ")
            session("vare" & session("kode" & request("kode"))) = request("kode") & " " & Int(antal) + antal2(1)

            '// Slut hvis stregkoden findes i en session

        end if
        '// Slut Tjekker om stregkoden allerede er lagt i db'en en gang

    end if
    '// Slut Tjekker om Antallet man har skrevet er et tal

end if
'// Slut ASP'en når man lægger noget i indkøbskurven

---->> unødvendig kode <<------

- kan det bruges?
Avatar billede -thomas- Nybegynder
22. august 2003 - 09:27 #8
Du siger altså når du trykker på submit-knappen i din form åbnes et nyt browser-vindue oven på det første? Det plejer man så vidt jeg ved at bruge et javascript for at opnå. Har jeg forstået det rigtigt?
Avatar billede fastwrite Nybegynder
22. august 2003 - 09:54 #9
Thomas - trods dit navn har du ikke forstået det HELT endnu.. hæhæ..

NORMALT - ved andre hjemmesiders bestillingshalløjser, når man så trykker på SUBMIT knappen - så viser den PÅ SAMME SIDE hvad der er i din indkøbskurv - ligesom på www.shg.dk. Problemet er bare - det gør den ikke på min. Af en eller anden mærkelig grund åbner den et nyt billede hvor den så kun skriver den vare og pris jeg lige har trykket på. DET MÅ DEN IKKE!!! Den skal bare refreshe shop.asp siden, så jeg bliver på den samme side, efter at have trykket submit.
Avatar billede fastwrite Nybegynder
22. august 2003 - 09:55 #10
og på shop.asp siden skal den så nu vise hvor mange varer og prisen på varen.
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:20 #11
kan man evt. bruge en response.redirect ?
Avatar billede mm12010 Nybegynder
22. august 2003 - 10:27 #12
muligvis, prøv med: Response.Redirect(Request.ServerVariables("HTTP_REFERER"))
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:30 #13
TA DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:31 #14
mm12010 - det virkede med den. Jeg VIDSTE at jeg kunne bruge en response.redirect - men tænkte ikke på request.serverariables. Jeg takker, og også tak til Thomas. Thomas - håber det er i orden at mm12010 får pointene, da han gav mig hvad det jeg skulle bruge.
Avatar billede -thomas- Nybegynder
22. august 2003 - 10:34 #15
Er helt i orden, var ikke lige ved computeren, så jeg så ikke du havde svaret på mit spørgsmål... :-)

Det er også først nu jeg forstår hvad du egentlig mente :)
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:37 #16
hmm.. hvor vil det være mest hensigtsmæssigt at sætte koden ind?

JEg har prøvet at sætte den ind mellem:

end if
    '// Slut Tjekker om Antallet man har skrevet er et tal

Response.Redirect(Request.ServerVariables("HTTP_REFERER"))

end if
'// Slut ASP'en når man lægger noget i indkøbskurven
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:37 #17
det kan være du kan svare på det -thomas-?
Avatar billede -thomas- Nybegynder
22. august 2003 - 10:40 #18
Ville umiddelbart sige lige før den End If der afslutter
If Request("mode") = "tilkurv" Then
uden at have nærlæst koden. Prøv der.
Avatar billede -thomas- Nybegynder
22. august 2003 - 10:41 #19
Og det var vel egentlig der du selv har skrevet, når jeg nu læser dit indlæg igen :-)
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:42 #20
-thomas- hvad mener du? - hææ - har du læst mine indlæg igen?!
Avatar billede -thomas- Nybegynder
22. august 2003 - 10:46 #21
Jeg tænkte mig ikke lige om og foreslog præcis det samme som du lige havde skrevet, at du selv havde prøvet....
Avatar billede -thomas- Nybegynder
22. august 2003 - 10:47 #22
Kunne du ikke slå dine to første If-sætninger sammen til:

If Request("mode") = "tilkurv" And (IsNumeric(request.form("antal")) or request.form("antal") = "") Then
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:50 #23
-thomas- ah.. Vi Thomas'er tænker jo nok ens.. hæhæ.. (pånær dem der ikke er fornuftige)

argh - skal jeg nu til at programmere om?

jeg har også en "tøm kurv" funktion der ser sådan ud:

<a href="java script:if (confirm('Vil du tømme indkøbskurven?')) { document.location.href = 'shop.asp?mode=tomkurv'; }">Tøm indkøbskurv</a>

den virker fint - men gør nøjagtigt som mit første problem.. hvordan skal jeg grelje den? - den åbner et script der spørger om jeg vil tømme indkøbskurven, og når jeg siger ja til det, åbner den det evendelige vindue jeg ikke vil have den skal åbne. Nu har jeg fået det andet til at virke, når jeg trykker på submit-knappen.
Avatar billede -thomas- Nybegynder
22. august 2003 - 10:53 #24
Kan du ikke gøre præcis det samme som i mode=tilkurv, med en response.redirect i bunden af din if-sætning?
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:54 #25
hæhææ - jeg har selv fundet ud at mit sidste problem med tøm kurven. - mand jeg er i hopla i dag, trods snot i hovedet og ondt i halsen.
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:54 #26
-thomas- jo, det var præcis hvad jeg gjorde.. jeg brugte en response.redirect("shop.asp") - den virkede ikke med Response.Redirect(Request.ServerVariables("HTTP_REFERER"))
Avatar billede fastwrite Nybegynder
22. august 2003 - 10:55 #27
mm12010 - vil du lige droppe et svar?
Avatar billede -thomas- Nybegynder
22. august 2003 - 10:56 #28
hehe, det kan man ikke sige om mig, tror ikke jeg er helt vågen endnu, siden jeg kan være så langtsom :-)
virker det så nu som det skal?
Avatar billede mm12010 Nybegynder
22. august 2003 - 11:06 #29
:o)
Avatar billede fastwrite Nybegynder
22. august 2003 - 11:20 #30
Det hele virker jo bare perfekt.. mand, min kone bliver glad!!
Avatar billede fastwrite Nybegynder
22. august 2003 - 11:20 #31
Jeg takker jer begge for vores små samtaler.. Har I været på eksperten i lang tid?
Avatar billede -thomas- Nybegynder
22. august 2003 - 11:24 #32
Avatar billede fastwrite Nybegynder
22. august 2003 - 11:54 #33
naturligvis kunne jeg det.. mand, den snot tager livet af mig.... Men I er relativt nye - herligt nok.

Tænk - jeg har været på siden torsdag 10. februar 2000 00:00.. underligt som tiden dog går.. (bliver lige lidt nostalgisk :o)
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