webForumDet fria alternativet

Orderbekräftelse

7 svar · 344 visningar · startad av Robson

RobsonMedlem sedan dec. 2001200 inlägg
#1

Tja,

Har fått detta att funka, men vill även ha med lite uppgifter i mailet som skickas. Dessa är de uppgifter jag vill ha med:

<%= intQuant %> och <%= intProdID %>

Det hjälper ju inte så mycket att bara få Ny order...

<%
set objMail = Server.CreateObject("CDONTS.NewMail")
objMail.to = "xxx@xxx.com,yyy@yyy.se"
objMail.From = "order@butiken.se"
objMail.Subject = "Orderbekräftelse"
objMail.Body = "Ny order mottagen..."
objMail.Send
set objMail = Nothing
%>

Robson

SPiNMedlem sedan mars 20007 896 inlägg
#2
Dim mailBody
mailBody = "Ny order mottagen: " & vbCrLf
mailBody = mailBody & intQuant & " - " & intProdID

objMail.Body = mailBody
RobsonMedlem sedan dec. 2001200 inlägg
#3

SPiN

Kanon, det funkade direkt...

RobsonMedlem sedan dec. 2001200 inlägg
#4

Jag igen...

Hur gör jag om jag har fler beställningar. Då behövs det en loop, eller hur gör man?

Robson

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Ja, någon form av loop. Hur ligger beställningarna lagrade?

RobsonMedlem sedan dec. 2001200 inlägg
#6

Dom läggs i en Accessdatabas. Med dessa namn:

<%
set rsProdInfo = Server.CreateObject("ADODB.Recordset")
rsProdInfo.Open "products", Conn, adOpenStatic, adLockOptimistic, adCmdTable

         intTotal = 0

         rsProd.MoveFirst
         while not rsProd.EOF
             rsProdInfo.MoveFirst
             rsProdInfo.Find "productID = " & rsProd("productID")
             intProdID = rsProd("productID")
             strProdName = rsProdInfo("productName")
             intPrice = formatNumber(rsProdInfo("productPrice"), 2)
             intQuant = rsProd("quantity")
             intExtPrice = formatNumber((intPrice \* intQuant), 2)
             intTotal = intTotal + intExtPrice

%>

Robson

LarsGMedlem sedan dec. 200012 464 inlägg
#7

För att få in mailskickandet i en loop så borde det bli ungefär så här

<% 
Dim mailBody,objMail 'och resten av dina variabler

set objMail = Server.CreateObject("CDONTS.NewMail") 

set rsProdInfo = Server.CreateObject("ADODB.Recordset") 
rsProdInfo.Open "products", Conn, adOpenStatic, adLockOptimistic, adCmdTable 

intTotal = 0 

rsProd.MoveFirst 
while not rsProd.EOF 
    rsProdInfo.MoveFirst 
    rsProdInfo.Find "productID = " & rsProd("productID") 
    intProdID = rsProd("productID") 
    strProdName = rsProdInfo("productName") 
    intPrice = formatNumber(rsProdInfo("productPrice"), 2) 
    intQuant = rsProd("quantity") 
    intExtPrice = formatNumber((intPrice * intQuant), 2) 
    intTotal = intTotal + intExtPrice 
    objMail.to = "xxx@xxx.com,yyy@yyy.se" 
    objMail.From = "order@butiken.se" 
    objMail.Subject = "Orderbekräftelse" 
    mailBody = "Ny order mottagen: " & vbCrLf
    mailBody = mailBody & intQuant & " - " & intProdID
    objMail.Body = mailBody
    objMail.Send 
wend
set objMail = Nothing 
%>

Om innehållet i rsprod kommer från en tabell så är det bättre att hämta det du vill ha i en fråga istället för att hämta all produktinformation.

RobsonMedlem sedan dec. 2001200 inlägg
#8

Detta "dyker" upp.

ADODB.Recordset fel '800a0e7d'

Åtgärden är inte tillåten på ett objekt som refererar till en stängd eller en ogiltig anslutning.

/test/shop/validateOrder.asp, line 250

Rad 250:
rsProdInfo.Open "products", Conn, adOpenStatic, adLockOptimistic, adCmdTable

Går det inte att skriva en fråga till databasen, eller göra en rapport i DBn som skickas?

Robson

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)