Avatar billede kimlarsen1978 Nybegynder
27. marts 2002 - 23:06 Der er 5 kommentarer og
1 løsning

Indkøbskurv igen...

Her kommer hele min indkøbskurv bag.asp. I browseren står der: /bag.asp?id=10010. Fejlen tror jeg ligger nede ved de ----- og ----- jeg har sat ind, men jeg ved ikke hvad der er galt.

<% Response.Buffer = True %>
<html>
<head>
<title>Implementing the Shopping Bag</title>
</head>
<body bgcolor="#ffffff">
<%
Set BagItems = LoadXMLBag()

If Request.ServerVariables("CONTENT_LENGTH") > 0 Then
Select Case Trim(Request.Form("DO"))
Case "Shop for more"
Response.Redirect "products.asp"
Response.End
Case "Recalculate"
RecalcBag BagItems
Case "Check out"
' recalculate and then redirect to checkout
End Select
Else
' products are added using the query string
nProductId = Trim(Request.QueryString("id"))
AddtlProduct nProductId, BagItems
End If

Session("BagItems") = BagItems.XML

If BagItems.hasChildNodes Then
PrintBag BagItems
Else
Response.Write "hej"
End If
%>
<p>
"
</body>
</html>

<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
Function LoadXMLBag()
Set XMLDoc = Server.CreateObject("Microsoft.XMLDOM")
If Not IsEmpty(Session("BagItems")) Then
XMLDoc.loadXML CStr(Session("BagItems"))
Set BagItems = XMLDoc.documentElement
Else
Set BagItems = XMLDoc.createElement("BagItems")
Set XMLDoc.documentElement = BagItems
End If
Set LoadXMLBag = BagItems
End Function

Sub AddtlProduct(nProductId, BagItems)
bValid = True

If "" = nProductId Or Not IsNumeric(nProductId) Then
bValid = False
Else
   
Set objConn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")

objConn.Open "Driver={Microsoft Access Driver (*.mdb)};
objConn.Open "DBQ=" & Server.Mappath("items.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
   

Set objRS = Server.CreateObject("ADODB.Recordset")
Set objRS.ActiveConnection = objConn
objRS.Open "SELECT * FROM items WHERE ProductNum=" & nProductId
If objRS.EOF And objRS.BOF Then
bValid = False
Else
avarProduct = objRS.GetRows()
End If
objConn.Close
Set objRS = Nothing
Set objConn = Nothing
End If
   
' if the product was ok, add it to the bag
If bValid Then
AddProductToBag avarProduct, BagItems
End If
End Sub

Sub AddProductToBag(avarProduct, BagItems)
Set XMLDoc = BagItems.ownerDocument
Set nodeFind = BagItems.selectNodes("product[@ProductNum=""" & nProductId & """]")
If Not nodeFind.length > 0 Then
Set product = XMLDoc.createElement("product")
Set attr = XMLDoc.createAttribute("ProductNum")
attr.Text = avarProduct(0,0)
product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute("Name")
attr.Text = Server.HtmlEncode(avarProduct(1,0))
product.attributes.setNamedItem(attr)
'Set attr = XMLDoc.createAttribute("quantityperunit")
'attr.Text = Server.HtmlEncode(avarProduct(2,0))
'product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute("price")
attr.Text = avarProduct(2,0)
product.attributes.setNamedItem(attr)
product.text = "1"
BagItems.appendChild(product)
End If
End Sub

Sub Out(strOut)
Response.Write strOut
End Sub

Sub PrintBag(BagItems)
Out "<FORM METHOD=""POST"" ACTION="""
Out Request.ServerVariables("SCRIPT_NAME") & """>"
Out "<TABLE><TR><TH>Units</TH><TH COLSPAN=2>"
Out "Product</TH><TH>Unit Price</TH><TH>Price</TH>"
Out "</TR>" & vbCrLf
For Each item In BagItems.childNodes
Out "<TR><TD><input type=""TEXT"" name=""Qty"
--------------------------------------------------------
Out item.attributes.getNamedItem("ProductNum")
Out """ VALUE=""" & item.text & """ SIZE=""3"">"
--------------------------------------------------------
Out "<TD>" & item.attributes.getNamedItem("Name")
Out "</TD><TD>" & item.attributes.getNamedItem("price") & "</TD>"
nUnitPrice = item.attributes.getNamedItem("price")
nSubTotal = item.text * nUnitPrice
nTotal = nTotal + nSubTotal
Out "<TD>" & FormatCurrency(nUnitPrice) & "</TD>"
Out "<TD><B>" & FormatCurrency(nSubTotal) & "</B></TD>"
Out "</TR>" & vbCRLF
Next
Out "<TR><TD COLSPAN=5><HR></TD></TR>"
Out "<TR><TD COLSPAN=3></TD><TD><B>Total:</B></TD>"
Out "<TD><B>" & FormatCurrency(nTotal) & "</B></TD></TR>" & vbCrLf
Out "<TR><TD COLSPAN=5 ALIGN=""RIGHT"">"
Out "<INPUT TYPE=SUBMIT NAME=""DO"" VALUE=""Shop for more""> "
Out "<INPUT TYPE=SUBMIT NAME=""DO"" VALUE=""Recalculate""> "
Out "<INPUT TYPE=SUBMIT NAME=""DO"" VALUE=""Check out"">"
Out "</TD></TR></TABLE></FORM>"
End Sub

Sub RecalcBag(BagItems)
For Each item in BagItems.childNodes
nQty = Trim(Request.Form("Qty" & item.attributes.getNamedItem("ProductNum")))
If "" <> nQty And IsNumeric(nQty) Then
If nQty < 1 Then
BagItems.removeChild item
Else
item.text = nQty
End If
End If
Next
End Sub
</SCRIPT>
--------------

DEn giver fejlen:
-----
Response object error 'ASP 0185 : 80020003'

Missing Default Property

?

A default property was not found for the object
--------------
Hvorfor????
Avatar billede soes Nybegynder
28. marts 2002 - 12:27 #1
er det noget du selv har skrevet, eller er det fundet på nettet = download.
Hvis det er download, kunne det så tænkes at man kunne få et link? Er selv ved at udvikle et indkøbssytem, og kunne godt bruge lidt input :-)

/Søren Søndergård
Avatar billede rullemarie Praktikant
28. marts 2002 - 12:30 #2
Jeg sidder med nøjagtig samme fejl. Til Søren Søndergård, det kan downloades fra http://www.asp24h.com. Der kan det testes, og fragmenter kan downloades.

/Rullemarie
Avatar billede coltau Juniormester
28. marts 2002 - 14:48 #3
Jeg har bogen og kan stadigvæk ikke få det til at virke - men i bogen står der bl.a. at eksemplerne med XML kun virker når klienten bruger IE5 og samtidig skal IE5 være installeret på serveren. ? Hva' så end det sidste betyder.
Avatar billede rullemarie Praktikant
28. marts 2002 - 15:03 #4
Hvis jeg ændrer første linie til:

<% Response.Buffer = False %>,

Vises den første del af siden. Dvs at der vises et lille tekstfelt i venstre side til indtastning af antal. Ligeledes vises overskrifterne der skal være i den sektion. Men jeg får ikke parset mere af siden end til der hvor linien: <SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER> starter.

/Rullemarie
Avatar billede kimlarsen1978 Nybegynder
28. marts 2002 - 17:40 #5
ved ovenstående script kommer jeg lige så langt som dig RulleMarie, men uden at ændre Response.Buffer... What dælen do vi do?
Avatar billede kimlarsen1978 Nybegynder
14. maj 2003 - 16:19 #6
Er ved at rude op i mine gamle spørgsmål Jeg har fundet ud af det, jeg begyndte forfra med mit eget scipt fra bunden :-)
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