Avatar billede dk_zerocool Nybegynder
14. februar 2003 - 19:23 Der er 12 kommentarer og
2 løsninger

JMail problem ??

Jeg har et lille problem med JMail Jeg har lavet en bestillingsside hvor man bestiller produkter som bliver smidt i en "kurv". Når man er færdig med at bestille udfylder man navn....osv. og trykker send bestilling. Send bestilling bruger JMail til at sende en mail med ordren til indehaver.

Problemet:

Hvis man bestiller flere varer ad gangen kommer emailen til at se således ud:

vareNavn: vare1, vare 2
Pris: pris1, pris2
Total: Total1, Total2

Og det skulle egentlig se sådan ud

VareNavn: Vare 1
Pris: Pris1

VareNavn: Vare 2
Pris: Pris2

Total: Total

Kan man ikke lave en slags "løkke" i JMail ??

Min JMail:

JMail.body = JMail.body & "Vareordre " & request.form("intProdID") & VbCrLf
  JMail.body = JMail.body & "VareNavn: " & request.form("prodNavn") & VbCrLf
  JMail.body = JMail.body & "Vareordre " & request.form("Antal") & VbCrLf
  JMail.body = JMail.body & "VarePris: " & request.form("prodPris") & " kr. " & VbCrLf
  JMail.body = JMail.body & "Totalpris: " & request.form("totalPris") & " kr. " & VbCrLf

  JMail.Priority = 3
  JMail.Execute
%>
Avatar billede medions Nybegynder
14. februar 2003 - 19:40 #1
Du kan jo sige:

For Each Item In Request.Form
strBody = strBody & "Vareordre " & request.form("intProdID") & VbCrLf
strBody = strBody & "VareNavn: " & request.form("prodNavn") & VbCrLf
Next

//>Rune
Avatar billede eagleeye Praktikant
14. februar 2003 - 19:40 #2
Jo det kan man.
Får du Varenavn og tilhørne lister som komma sepereret liste?

Dem som er en del af listen

navnArr = Split(request.form("prodNavn"), ",")
prisArr = Split(request.form("prodPris"), ",")
antalArr = Split(request.form("Antal"), ",")


Så kan man lave et loop i stil med dette´:

JMail.body = JMail.body & "Vareordre " & request.form("intProdID") & VbCrLf

for i = lbound(navnArr) to ubound(navnArr)
  JMail.body = JMail.body & "VareNavn: " & navnArr(i) & VbCrLf
  JMail.body = JMail.body & "Pris " & prisArr & VbCrLf
next

JMail.body = JMail.body & "Totalpris: " & request.form("totalPris") & " kr. " & VbCrLf
JMail.Priority = 3
JMail.Execute
Avatar billede medions Nybegynder
14. februar 2003 - 19:41 #3
For Each Item In Request.Form
strBody = strBody & "Vareordre " & request.form("intProdID") & VbCrLf
strBody = strBody & "VareNavn: " & request.form("prodNavn") & VbCrLf & vbCrLf & vbCrLf
Next

//>Rune
Avatar billede dk_zerocool Nybegynder
14. februar 2003 - 22:25 #4
medions: Jeg får slet ingen ting med i mailen, når jeg indsætter dit script ??
eagleeye: Jeg får en fejl 500, når jeg sætter de 3 arrays ind i JMailen ??
Avatar billede medions Nybegynder
14. februar 2003 - 22:26 #5
For Each Item In Request.Form
strBody = strBody & "Vareordre " & request.form("intProdID") & VbCrLf
strBody = strBody & "VareNavn: " & request.form("prodNavn") & VbCrLf & vbCrLf & vbCrLf
Next

JMail.body = strBody
JMail.Priority = 3
JMail.Execute

//>Rune
Avatar billede dk_zerocool Nybegynder
14. februar 2003 - 23:36 #6
hmm...nu skrev den:

Vareordre
VareNavn: Varen

-> 18 gange
Avatar billede dk_zerocool Nybegynder
14. februar 2003 - 23:37 #7
undskyld, den skrev:

Vareordre
VareNavn: Vare1, Vare2

-> 18 gange
Avatar billede eagleeye Praktikant
15. februar 2003 - 02:22 #8
Har du prøvet mit?
Avatar billede dk_zerocool Nybegynder
15. februar 2003 - 09:03 #9
Yep...når jeg satte de 3 arrays op ville siden ikke vises (fejl 500)
Avatar billede dk_zerocool Nybegynder
15. februar 2003 - 11:34 #10
Jeg tror jeg har fundet fejlen, variablerne bliver genereret i siden inden JMail med en løkke, som sætter værdien:

<%
            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
%>
                <tr>
                    <td width="15%" align="left" valign="middle" nowrap><font face="Trebuchet MS" size="2" color="#000000"><%= intQuant %></font></td>
                    <td width="40%" align="left" valign="middle" nowrap><font face="Trebuchet MS" size="2" color="#000000"><%= strProdName %></font></td>
                    <td width="15%" align="right" valign="middle" nowrap><font face="Trebuchet MS" size="2" color="#000000">kr. <%= intPrice %></font></td>
                    <td width="15%" align="right" valign="middle" nowrap><font face="Trebuchet MS" size="2" color="#000000">kr.
                      <%= intExtPrice %></font></td>
                </tr>
                <input type="hidden" name="prodID" value="<%= intProdID %>">
                <input type="hidden" name="Antal" value="<%= intQuant %>">
                <input type="hidden" name="prodNavn" value="<%= strProdName %>">
                    <input type="hidden" name="prodPris" value="<%= intPrice %>">
                    <input type="hidden" name="totalPris" value="<%= intTotal %>">
<%
                rsProd.MoveNext
            wend                       
%>
Avatar billede dk_zerocool Nybegynder
15. februar 2003 - 11:36 #11
Forhøjer point-præmien til 150 !
Avatar billede dk_zerocool Nybegynder
15. februar 2003 - 14:11 #12
Eagleeye jeg fik dit eksempel til at virke nogenlunde, men der er stadig et problem med det totale beløb:

navnArr = Split(request.form("prodNavn"), ",")
  prisArr = Split(request.form("prodPris"), ",")
  antalArr = Split(request.form("Antal"), ",")
  samPrisArr = Split(request.form("samPris"), ",")
  totalArr = Split(request.form("total"), ",")
   
  JMail.body = JMail.body & "" & request.form("") & VbCrLf
  JMail.body = JMail.body & "---- Vareordre ---- " & request.form("intProdID") & VbCrLf
  JMail.body = JMail.body & "" & request.form("") & VbCrLf

  for i = lbound(navnArr) to ubound(navnArr)
    JMail.body = JMail.body & "Vare: " & navnArr(i) & VbCrLf 
    JMail.body = JMail.body & "Antal: " & antalArr(i) & VbCrLf   
    JMail.body = JMail.body & "Pris/stk.: " & prisArr(i) & " kr. " & VbCrLf

    JMail.body = JMail.body & "Totalpris: " & totalArr(i) & " kr. " & VbCrLf
   
    JMail.body = JMail.body & "---- " & request.form("") & VbCrLf
    next

  JMail.Priority = 3
  JMail.Execute   

%>

Udskriver:

Vare: Vare 1
Antal: Antal 1
Pris/stk.: pris 1
Totalpris: pris 1
----
Vare:  vare 2
Antal:  antal 2
Pris/stk.:  pris 2.
Totalpris:  pris 1 + pris 2.

Jeg ville gerne ha totalbeløbet udskrevet kun til sidst, men hvordan samler
jeg summen af arrayet og udskriver det på 1 linie ??
Avatar billede eagleeye Praktikant
15. februar 2003 - 20:08 #13
Jeg er ikke helt med vi du havde en summeret totalpris under hver vare og så en totalpris til sidst?
Avatar billede eagleeye Praktikant
15. februar 2003 - 20:09 #14
I så fald hvad får du overført ved denne:  request.form("total")
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