/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Items bliver ikke lagt i kurv
Fra : Flemming C. Lund


Dato : 08-12-01 21:12

Jeg har et lille problem: Jeg har en indkøbsfunktion, som af en eller anden
grund ikke vil virke længere. Jeg har haft den til at virke tidligere, men
efter at have rettet den til, virker den ikke længere. Der er i alt 2 filer.
Den første viser hvilke varer der er til rådighed, og den anden side
sammenregner priser m.m. Af en eller anden grund kan indkøbskurven ikke
fatte at der bliver lagt varer ned i den. Er der en der kan gennemskue
problemet? Indkøbskurven er lavet i XML, og det har jeg ikke så meget
forstand, men jeg har tjecket den på kryds og tværs, og burde umiddelbart
virke. Den gør det dog ikke. Koderne følger...



 
 
Flemming C. Lund (08-12-2001)
Kommentar
Fra : Flemming C. Lund


Dato : 08-12-01 21:16

<% @LANGUAGE = "VBScript" %>
<% Option Explicit %>

<%
Dim objConn, objRS, strQ, DSN, Conn
%>

<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../seniornet.mdb")
Conn.Open DSN

strQ = "SELECT Produkt_Id, Produkt, Forklaring, Pris FROM Indkoeb WHERE
Kategori = 'Drikkevarer';"
Set objRS = Conn.Execute(strQ)

%>
<html>


<head>
<title>Køb ind med SeniorNET</title>
<META NAME="Generator" CONTENT="Stone's WebWriter 3">
<link rel="stylesheet" type="text/css" href="../css/stylesheet.css">
</head>
<body bgcolor=#d8c89e>
<b><h2>Følgende varer er tilgængelige hos din lokale købmand:</h2></b><br>
<table border=0 cellpadding="3">
<tr bgcolor="#889D8A">
<th align="left" width="110" nowrap>Drikkevarer</th>
<th align="left" width="150" nowrap>Forklaring</th>
<th align="left" width="80" nowrap>Pris</th>
</tr>
<%
While Not objRS.EOF
%>
<tr>
<td valign="top" width="80"><a href="indkoeb_bag.asp?id=<%=
objRS("Produkt_Id") %>"><%= Server.HtmlEncode(objRS("Produkt")) %></a></td>
<td valign="top" width="150"><%= objRS("Forklaring") %></td>
<td valign="top" width="80"><%= objRS("Pris") %></td>
</tr>
<%
objRS.MoveNext
Wend
%>

<%
Conn.close
Set Conn = Nothing
%>
</table>
</body>
</html>



Flemming C. Lund (08-12-2001)
Kommentar
Fra : Flemming C. Lund


Dato : 08-12-01 21:17

<% Response.Buffer = True %>
<!--#include file="connect2db.inc"-->
<% 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 UnloadXMLBag(BagItems)
Session("BagItems") = Empty
Set BagItems = Nothing
End Sub

Sub AddtlProduct(nProdukt_Id, BagItems)
bValid = True

If "" = nProdukt_Id Or Not IsNumeric(nProdukt_Id) Then
bValid = False
Else
Set objRS = objConn.Execute("SELECT Produkt_Id, Produkt, Forklaring, Pris
FROM Indkoeb WHERE Produkt='" & nProdukt_Id & "'")
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[@produkt_id='" & nProdukt_Id &
"']")
If Not nodeFind.length > 0 Then
Set product = XMLDoc.createElement("product")
Set attr = XMLDoc.createAttribute("produkt")
attr.Text = avarProduct(0,0)
product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute("forklaring")
attr.Text = Server.HtmlEncode(avarProduct(1,0))
product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute("pris")
attr.Text = Server.HtmlEncode(avarProduct(2,0))
product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute("produkt_id")
attr.Text = Server.HtmlEncode(avarProduct(3,0))
product.attributes.setNamedItem(attr)

product.text = "1"
BagItems.appendChild(product)
' Manglende kode der håndterer hvis produktet findes i kurven allerede:'
Else
currentQty = CInt(nodeFind.item(0).text)
nodeFind.item(0).text = currentQty + 1'
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>Antal</TH><TH COLSPAN=2>"
Out "Produkt</TH><TH>Forklaring</TH><TH>Pris</TH>"
Out "</TR>" & vbCrLf
For Each item In BagItems.childNodes
Out "<TR><TD><input type=""TEXT"" name=""Qty"
Out item.attributes.getNamedItem("produkt_id").text
Out """ VALUE=""" & item.text & """ SIZE=""3"">" & "</td>"

Out "<td>" & item.attributes.getNamedItem("produkt").text & "</td>"

Out "<TD>" & item.attributes.getNamedItem("forklaring").text & "</TD>"
nUnitPrice = CDbl(item.attributes.getNamedItem("pris").text) * 16
nSubTotal = CInt(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=""Indkøb mere"">&nbsp;"
Out "<INPUT TYPE=SUBMIT NAME=""DO"" VALUE=""Genoptælling"">&nbsp;"
Out "<INPUT TYPE=SUBMIT NAME=""DO"" VALUE=""Afslut indkøb"">"
Out "</TD></TR></TABLE></FORM>"
End Sub

Sub InsertOrderIntoBase(BagItems, oDB)
idag = CDbl(Timer)
OrdreIdFraTid = Fix(idag)

If Session("userLoggedIn") <> 1 Then
Response.Redirect("login.asp")
Else
insertSQL = "INSERT INTO INDKOEB_ORDRE (Nr, RegDato, Kunde_Id) VALUES (" &
OrdreIdFraTid & ", '" & Now & "', " & Session("Bruger_Id") & " );"
oDB.Execute(insertSQL)
Session("ordrenr") = OrdreIdFraTid
Set items = BagItems.selectNodes("//product")
For Each item In items
insertSQL = "INSERT INTO INDKOEB_INDHOLD (OrdreNr, Vare_Id, Antal) VALUES
(" & OrdreIdFraTid & ", " & item.attributes.getNamedItem("produkt_id").text
& ", " & item.text & ");"
oDB.execute(insertSQL)
Next
End If
End Sub

Sub RecalcBag(BagItems)
For Each item in BagItems.childNodes
nQty = Trim(Request.Form("Qty" &
item.attributes.getNamedItem("produkt_id").text))
If "" <> nQty And IsNumeric(nQty) Then
If nQty < 1 Then
BagItems.removeChild item
Else
item.text = nQty
End If
End If
Next
End Sub
%>
<html>
<head>
<title>Indkøbskurv</title>
<link rel="stylesheet" type="text/css" href="../css/stylesheet.css">
</head>
<body bgcolor="#d8c89e">
<%
' 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 "Indkøb mere"
Response.Redirect "indkoeb.asp"

Case "Genoptælling"
RecalcBag BagItems
Case "Afslut indkøb"
If Session("userLoggedIn") = 1 Then
RecalcBag BagItems
InsertOrderIntoBase BagItems, objConn
UnloadXMLBag BagItems

Response.Redirect("ordregemt.asp")
Else
Response.Redirect("login.asp")
End If
End Select
Else
' products are added using the query string
nProdukt_Id = Trim(Request.QueryString("id"))
AddtlProduct nProdukt_Id, BagItems
End If

Session("BagItems") = BagItems.XML

If BagItems.hasChildNodes Then
PrintBag BagItems
Else
Response.Write "Beklager, du har ikke nogen varer i
indkøbskurven!<br><br>Put nogen i <a href='indkoeb.asp'>her</a>."
End If
%>
</body>
</html>






Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408941
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste