Avatar billede pixelboxdk Nybegynder
24. november 2005 - 05:53 Der er 7 kommentarer og
1 løsning

Loop i JMail

Hejsa!

Hej er pt. i gang med at lave en online shop.. når folk så er nået til sidste punkt i bestillingen skal de modtage en e-mail med hvad de har bestilt..

Jeg skal altså have lavet et loop i e-mailen, hvor alle produkter bestilt bliver vist..

Jeg har prøvet:

jmail.appendHTML "<table><tr><td colspan=""3""><b>"&navn&" har bestilt følgende:</b></td></tr><tr><td><b>Antal</b></td><td><b>Produkt</b></td><td><b>Pris</b></td></tr>"do while not rsVarer.bof""strSQL = "SELECT * FROM kort WHERE id = "&rs("produktid")&""set rsProdukt = conn.execute(strSQL)"<tr><td>"&rs("antal")&"</td><td>"&rsProdukt("kortnavn")&"</td><td>"&rs("pris")&"</td></tr>"rsVarer.MoveNext Loop While Not rsVarer.EOF"</table>"

Problemet er altså at lave et loop inde i selve "jmail.appendHTML".. Hvordan skal det præcist gøres? for min måde virker da ihvertfald ikke :)

På forhånd tak
Avatar billede softspot Forsker
24. november 2005 - 06:06 #1
Du kan gøre det på mindst to måder.

1. byg din HTML op inden du appender

2. append i flere omgange (en ordrelinie pr. iteration)

strHTML = "<table><tr><td colspan=""3""><b>"&navn&" har bestilt følgende:</b></td></tr>"
strHTML = strHTML & "<tr><td><b>Antal</b></td>"
strHTML = strHTML & "<td><b>Produkt</b></td>"
strHTML = strHTML & "<td><b>Pris</b></td></tr>"
do while not rsVarer.eof
  strSQL = "SELECT * FROM kort WHERE id = "&rs("produktid")
  set rsProdukt = conn.execute(strSQL)

  strHTML = strHTML & "<tr><td>"&rs("antal")&"</td>"
  strHTML = strHTML & "<td>"&rsProdukt("kortnavn")&"</td>"
  strHTML = strHTML & "<td>"&rs("pris")&"</td></tr>"
  rsVarer.MoveNext
Loop
strHTML = strHTML & "</table>"

jmail.appendHTML strHTML


Jeg siger ikke dette er den mest effektive måde, men jeg tror du kan gennemskue hvad der sker...
Avatar billede softspot Forsker
24. november 2005 - 06:09 #2
...hvor du så får rs og rsVarer fra det kan jeg ikke lige gennemskue, men det virker lidt suspekt at du aflæser rs("produktid"), mens du looper gennem rsVarer...???

Kunne det tænkes at det skulle være sådan(?):

do while not rsVarer.eof
  strSQL = "SELECT * FROM kort WHERE id = "&rsVarer("produktid")
  set rsProdukt = conn.execute(strSQL)

  strHTML = strHTML & "<tr><td>"&rsVarer("antal")&"</td>"
  strHTML = strHTML & "<td>"&rsProdukt("kortnavn")&"</td>"
  strHTML = strHTML & "<td>"&rsVarer("pris")&"</td></tr>"
  rsVarer.MoveNext
Loop
Avatar billede pixelboxdk Nybegynder
24. november 2005 - 06:17 #3
ahh.. det er fordi jeg har en masse andet med i mailen også.. så det skal være rs("produktid") :)

Nogle gange tror jeg altså at jeg trænger til at slå mig selv.. for din måde ser da 1000 gange mere simpel ud end min.. ;)
Jeg prøver det lige, og vender tilbage..
Avatar billede pixelboxdk Nybegynder
24. november 2005 - 07:27 #4
den kommer med fejlen:
error '80020009'
/ordre_godkendt.asp, line 42

Linie 42 er altså:

strSQL = "SELECT * FROM kort WHERE id = "&rs("produktid")&""

Er det noget du kan gennemskue?
Avatar billede softspot Forsker
24. november 2005 - 15:12 #5
Det jeg lige kan komme i tanke om (med den sparsomme fejltekst information :)), er at produktid ikke findes i det recordset du er ved at aflæse (altså rs("produktid") findes ikke i rs's fields-collection).

Kommer der mere fejltekst til den fejl eller er det hvad du får at arbejde med?

Check først:

1. findes feltet produktid i det resultat som rs indeholder (kunne det f.eks. være produkt_id eller bare id i stedet)?

2. har id-feltet i tabellen kort, typen tal eller en anden ikke-tekst type?
Avatar billede pixelboxdk Nybegynder
15. december 2005 - 22:58 #6
softspot - du må meget gerne oprette et svar ;)
og tak for hjælpen!
Avatar billede softspot Forsker
16. december 2005 - 02:28 #7
Velbekomme :)
Avatar billede softspot Forsker
16. december 2005 - 09:15 #8
Tak for point :)
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