webForumDet fria alternativet

Hjälp med kundvagn!

ASP

24 svar · 749 visningar · startad av Mika3l

Medlem sedan nov. 20018 492 inlägg
Frågan#1

Hejsan!

Varje gång jag försöker att lägga till en produkt i min kundvagn får jag följande felmeddelande:

Cookies-objekt, ASP 0102 (0x80004005)
Funktionen förväntar sig en sträng som inmatning.
/test/mystore/kundvagn.asp, line 58

Skulle det fungera(så att produkterna visas, skapar dock andra problem)så visas produkten fyra gånger!
Det räcker ju med en...

Någon som kan hjälpa?!

<%
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.Open "Driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("shop.mdb")
%>
<html>
<head>
<title>Black</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body class="orange">

<%
If Request.Form("PID") <> "" Then
PID = Trim(Request.Form("PID"))

Set rs = Connection.Execute("SELECT PID, namn, pris FROM produkter WHERE PID = " & PID & "")

Response. Cookies(PID)("PID") = rs("PID")
Response. Cookies(PID)("namn") = rs("namn")
Response. Cookies(PID)("pris") = rs("pris")
Response. Cookies(PID)("antal") = trim(Request.Form("antal"))

%>

<table>
 <tr>
  <td>

<table>
 <tr>
  <td>

<table align="left" width="650" cellspacing="0" cellpadding="2" border="0">
 <tr>
  <th width="340">
Produkt:
  </th>
  <th width="45">
Antal:
  </th>
  <th width="115">
Pris(inkl. moms):
  </th>
  <th width="110">
Ta bort produkt
  </th>
 </tr>

<%
For each objitem in Response. Cookies(item)[/red]
If Response. Cookies(item).Haskeys Then

PID = Request. Cookies(item)("PID")
namn = Request. Cookies(item)("namn")
pris = Request. Cookies(item)("pris")
antal = Request. Cookies(item)("antal")

color = color +1
bgcolor = "#FFFFFF"
If color mod 2 = 0 Then
bgcolor = "#FFEEBB"
End If
%>
 <tr bgcolor="<%=bgcolor%>">
  <td>
<a href="prodinfo.asp?PID=<%=PID%>" title="Klicka här för mer information om <%=namn%>" target="main"><%=namn%></a>
  </td>
  <td>
&nbsp;&nbsp;<%=antal%>
  </td>
  <td>
&nbsp;&nbsp;<%=pris%>:-
  </td>
  <td>
&nbsp;&nbsp;<a href="kundvagn.asp?page=del&PID=<%=PID%>" title="Ta bort <%=namn%> ur kundvagnen.">Ta bort</a>
  </td>
 </tr>
  
<%
End If
Next
%>
</table>

  </td>
 </tr>
 <tr>
  <td>

<br>
<table>
 <tr>
  <td>
<%
Dim antalprod
antalprod = 0
For Each objitem in Response. Cookies(item)
antal = Request. Cookies(item)("antal")
antalprod = antalprod + antal
Next
Response.Write"Totalt antal produkter: <b>" & antalprod & "</b><br>"
Dim summa
summa = 0
For Each objitem in Response. Cookies(item)
pris = Request. Cookies(item)("pris")
summa = summa + pris
Next
Response.Write"Total kostnad(inkl.moms): <b>"& pris &":-</b>"
%>

  </td>
 </tr>
</table>

  </td>
 </tr>
</table>

  </td>
  <td valign="top">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="kassa.asp" title="Klicka här för att komma till kassan."><strong>Till kassan</strong></a>
  </td>
 </tr>
</table>

<%
rs.Close
Set rs = Nothing
Else
Response.Write"Din kundvagn är tom!"
End If
%>

</body>
</html>

<%
Connection.Close
Set Connection = Nothing
%>

Rad 58 år blå.

/Mika3l

------------------
Det stora datatestet:

Ok, då börjar vi!
För att börja testet tryck alt+F4.

MK-Studios v2!

Medlem sedan nov. 20017 144 inlägg
#2

Har du angett rätt datatyp i databasen? (Tal i ditt fall). Men detta kanske är en banalitet i detta fall?

Set rs = Connection.Execute("SELECT PID, namn, pris FROM produkter WHERE PID = '" & PID & "'")

@nders:

Eftersom det är en sträng skall den omslutas av apostrofer, annars tolkas det som ett fält, och fältet Pelle finns ju inte, därav felmeddelandet.

MVH Jesper T

------------------
If ASPackad date-1 then ASPerin Now

[Redigerat av Jesper T den 13 feb 2002]

[Redigerat av Jesper T den 13 feb 2002]

Medlem sedan okt. 20005 273 inlägg
#3

Ska inte detta

For each objitem in Response. Cookies(item)

vara

For each objitem in Request. Cookies(item)

eller ??

------------------
-::| a tribute to LarsG |::-

[Redigerat av icaaq den 13 feb 2002]

Medlem sedan juni 200032 967 inlägg
#4

Det känns så, och även raden under tror jag minsann skall vara request istället för response.

Mvh,

------------------
webForum har stängt 15-17/2 för uppgradering.

Medlem sedan nov. 20018 492 inlägg
#5

PID är Autonumber, det stämmer i koden med andra ord.
Har också funderat på om det inte ska vara Request. Cookies istället för Response.
Ska prova!

Återkommer nog strax!

/Mika3l

------------------
Det stora datatestet:

Ok, då börjar vi!
För att börja testet tryck alt+F4.

MK-Studios v2!

Medlem sedan nov. 20018 492 inlägg
#6

Nopp, fungerar inte.
Får samma felmeddelande...

Om jag tar bort alla (item) eller byter ut dom mot (PID) så fungerar det men då visas bara en produkt.

Förresten, varje gång jag lägger till en produkt så visas den fyra gånger!
Är det någon som vet vad som gör att det blir så?

/Mika3l

------------------
Det stora datatestet:

Ok, då börjar vi!
För att börja testet tryck alt+F4.

MK-Studios v2!

Medlem sedan juni 20019 024 inlägg
#7

For each objitem in Request.Cöökies**.item**

------------------
"Tål det inte att skämtas om, är det inte värt att ta på allvar."

[Redigerat av Pace den 14 feb 2002]

Medlem sedan nov. 20018 492 inlägg
#8

Nopp, fungerar inte :l

Ska man byta ut alla (item) till .item?

Har provat med att byta ut i bara for each och alla (item).
När jag bytte i bara for each så fick jag samma felmeddelande.
När jag bytte ut alla (item) så fick jag felmeddelandet

Körningsfel i Microsoft VBScript (0x800A01C3)
Objektet måste vara en mängd.
/test/mystore/kundvagn.asp, line 58

For each objitem in Request. Cookies.item

/Mika3l

------------------
Det stora datatestet:

Ok, då börjar vi!
För att börja testet tryck alt+F4.

MK-Studios v2!

Medlem sedan mars 20015 287 inlägg
#9
For each objitem in Response. Cookies(item)

Du skriver ju ut med en loop som loopar fyra ggr eftersom du har 4 objekt i din "Cookies(item)"

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan nov. 20018 492 inlägg
#10

Det har du ju rätt i!

Vad dum jag är! :p

Kan man lagra alla värden i en Cookie då?

/Mika3l

------------------
Det stora datatestet:

Ok, då börjar vi!
För att börja testet tryck alt+F4.

MK-Studios v2!

Medlem sedan mars 20015 287 inlägg
#11

Har du kollat vad om händer om du utkommenterar loopen?

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan nov. 20018 492 inlägg
#12

Har du kollat vad om händer om du utkommenterar loopen?

Menar du att jag ska köra en Response.Write av något slag eller(sorry, lite trött ;) )?

/Mika3l

------------------
Det stora datatestet:

Ok, då börjar vi!
För att börja testet tryck alt+F4.

MK-Studios v2!

Medlem sedan nov. 20017 144 inlägg
#13

Det har du ju rätt i!
Vad dum jag är!

Jag vet, Solbulle är en klippa! :h

------------------
If ASPackad date-1 then ASPerin Now

[Redigerat av Jesper T den 14 feb 2002]

Medlem sedan nov. 20018 492 inlägg
#14

Det har du ju rätt i!
Vad dum jag är!

Jag vet

Tack för den ;) :e

Du har möjligtvis ingen lösning på mitt probelm JesperT?

/Mika3l

------------------
Det stora datatestet:

Ok, då börjar vi!
För att börja testet tryck alt+F4.

MK-Studios v2!

[Redigerat av Mika3l den 14 feb 2002]

Medlem sedan mars 20015 287 inlägg
#15
For each objitem in Response. Cookies(item)("pris")

eller vilken cookie du vill loopa igenom, annars kör du ju bara loopen så pass många gånger som det finns olika cookies.
...tror jag... ;)
------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

[Redigerat av solbulle den 14 feb 2002]

Medlem sedan nov. 20018 492 inlägg
#16

Hmmm...
Jag vill ha både namnet på produkten, pris och antal.
Då kan jag inte använda din metod :q :l :p

Kan man inte spara flera värden i en Cookie?

Response. Cookies(PID)("namn")("pris")("antal") = rs("namn"), rs("pris"), " & Trim(Request.Form("antal")) & "

:q

/Mika3l

------------------
Det stora datatestet:

Ok, då börjar vi!
För att börja testet tryck alt+F4.

MK-Studios v2!

[Redigerat av Mika3l den 14 feb 2002]

Medlem sedan mars 20015 287 inlägg
#17

Jag är inte den bästa på detta, i morgon lär du nog kunna få bättre svar.
Tror nog att du är på rätt väg, men att du hamnar fel i loopen.
Vad händer om du bara helt enkelt byter ut i dina loopar:

For each objitem in Response. Cookies(item)

mot

For each objitem in Response. Cookies(item)("pris")

?
(Eller till någon av de andra cookisarna, antal el vad dom nu heter.

------------------
/solbulle
Hemmabio | Spelautomater | The Who | The Who II

Medlem sedan okt. 20005 273 inlägg
#18

Ska inte detta
Kod:
--------------------------------------------------------------------------------

For each objitem in Response. Cookies(item)

--------------------------------------------------------------------------------

vara
Kod:
--------------------------------------------------------------------------------

For each objitem in Request. Cookies(item)
--------------------------------------------------------------------------------

eller ??

Det känns så, och även raden under tror jag minsann skall vara request istället för response.
Mvh,

Response. Cookies = Skapar cookies
Request. Cookies = läser Cookies

mvh icaaq

------------------
-::| a tribute to LarsG |::-

[Redigerat av icaaq den 14 feb 2002]

Medlem sedan nov. 20018 492 inlägg
#19

Prova med (item)("pris") men jag fick samma felmeddelande Solbulle :( :p :l

Det är så konstigt för koden har fungerat förut, kanske att någon kod har trillat bort?

Hmmm...
Får kolla upp det...

/Mika3l

------------------
Det stora datatestet:

Ok, då börjar vi!
För att börja testet tryck alt+F4.

MK-Studios v2!

Medlem sedan aug. 20013 824 inlägg
#20

testa detta:

<%
For each item in Response. Cookies
If Response. Cookies(item).Haskeys Then

PID = Request. Cookies(item)("PID")
namn = Request. Cookies(item)("namn")
pris = Request. Cookies(item)("pris")
antal = Request. Cookies(item)("antal")

color = color +1
bgcolor = "#FFFFFF"
If color mod 2 = 0 Then
bgcolor = "#FFEEBB"
End If
%>
 <tr bgcolor="<%=bgcolor%>">
  <td>
<a href="prodinfo.asp?PID=<%=PID%>" title="Klicka här för mer information om <%=namn%>" target="main"><%=namn%></a>
  </td>
  <td>
  <%=antal%>
  </td>
  <td>
  <%=pris%>:-
  </td>
  <td>
  <a href="kundvagn.asp?page=del&PID=<%=PID%>" title="Ta bort <%=namn%> ur kundvagnen.">Ta bort</a>
  </td>
 </tr>
  
<%
End If
Next
%>
</table>

  </td>
 </tr>
 <tr>
  <td>

<br>
<table>
 <tr>
  <td>
<%
Dim antalprod
antalprod = 0
For Each item in Response. Cookies
If Response. Cookies(item).Haskeys Then
antal = Request. Cookies(item)("antal")
antalprod = antalprod + antal
end if
next
Response.Write"Totalt antal produkter: <b>" & antalprod & "</b><br>"
Dim summa
summa = 0
For Each item in Response. Cookies
If Response. Cookies(item).Haskeys Then
pris = Request. Cookies(item)("pris")
summa = summa + pris
end if
Next
Response.Write"Total kostnad(inkl.moms): <b>"& pris &":-</b>"
%>
263 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)