Hej jespernaur
Tak for svar inden til videre
JEG ER VED AT LAVE EN WEBSITE MED INDKØBSVOGN til mit firma, har købt bogen asp. Jeg har download coderne fra
http://www.asp24h/download the samples/chapter 24..(du bedes evt checke coden fra ovenstående adresse)......:
(jeg er villig til at sende dig en check, såfremt du kan lave de coder 100% funktionelle, så det virker til min productkatalog, HÅBER AT HØRE FRA DIG)
<% Response.Buffer = True %>
<html>
<head>
<title>Implementing the Shopping Bag</title>
</head>
<body bgcolor=\"#ffffff\">
<%
\' get or create the bag
Set BagItems = LoadXMLBag()
\' add or modify products
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 \"Sorry, you have no items in your bag!\"
End If
%>
</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\")
objConn.Open \"Data Source=Northwind;User ID=sa;Password=;\"
Set objRS = Server.CreateObject(\"ADODB.Recordset\")
Set objRS.ActiveConnection = objConn
objRS.Open \"SELECT ProductID, ProductName, QuantityPerUnit, UnitPrice FROM Products WHERE ProductId=\" & 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[@productid=\"\"\" & nProductId & \"\"\"]\")
If Not nodeFind.length > 0 Then
Set product = XMLDoc.createElement(\"product\")
Set attr = XMLDoc.createAttribute(\"productid\")
attr.Text = avarProduct(0,0)
product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute(\"productname\")
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(\"unitprice\")
attr.Text = avarProduct(3,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(\"productid\")
Out \"\"\" VALUE=\"\"\" & item.text & \"\"\" SIZE=\"\"3\"\">\"
Out \"<TD>\" & item.attributes.getNamedItem(\"productname\")
Out \"</TD><TD>\" & item.attributes.getNamedItem(\"quantityperunit\") & \"</TD>\"
nUnitPrice = item.attributes.getNamedItem(\"unitprice\")
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(\"productid\")))
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>
Tak
Patrick