12. marts 2005 - 18:48
Der er
32 kommentarer
Send ordre med Jmail
Hej Har arbejdet på en hjemmeside nogen tid nu, og er kommet til det punkt hvor kunden har købt sine varer, og der dermed skal sendes en mail ud til kunen og til mig, ang brugerinfo og købsinfo. Har roddet lidt med det, men syntes ikke rigtig at kunne få det til at fungere. Mit mailscript ser sådan ud: <%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <!--#include file="inc_CharonCart.asp" --> <!--#include file="Connections/db.asp" --> <% Dim bruger__MMColParam bruger__MMColParam = "1" If (Session("MM_Username") <> "") Then bruger__MMColParam = Session("MM_Username") End If %> <% Dim bruger Dim bruger_numRows Set bruger = Server.CreateObject("ADODB.Recordset") bruger.ActiveConnection = MM_db_STRING bruger.Source = "SELECT * FROM brugere WHERE brugernavn = '" + Replace(bruger__MMColParam, "'", "''") + "'" bruger.CursorType = 0 bruger.CursorLocation = 2 bruger.LockType = 1 bruger.Open() bruger_numRows = 0 %> <% Set msg = Server.CreateObject("JMail.Message") msg.ContentType = "text/html" msg.Logging = True msg.Silent = True msg.From = "info@zenithart.dk" 'Afsender e-mail msg.FromName = "zenithart" msg.Charset = "iso-8859-1" msg.AddRecipient "min mail", "mit navn" msg.Subject = "ordre" msg.body = if not msg.Send("smtp.danhost.dk" ) then Response.write "<pre>" & msg.log & "</pre>" else Response.write "Meddelelsen er nu sendt!" end if Set msg = nothing %> Men hvordan jeg får sendt informationerne fra mit recordset, og fra CharonCarten, er jeg ikke helt med på.... De forskllige informationer er følgende: Fra recordsettet "bruger": <%=(bruger.Fields.Item("firmanavn").Value)%></font> <%=(bruger.Fields.Item("CVR").Value)%></font> <%=(bruger.Fields.Item("fornavn").Value)%></font> <%=(bruger.Fields.Item("efternavn").Value)%></font> <%=(bruger.Fields.Item("gade").Value)%></font> <%=(bruger.Fields.Item("postnummer").Value)%></font> <%=(bruger.Fields.Item("bynavn").Value)%></font> <%=(bruger.Fields.Item("Land").Value)%></font> <%=(bruger.Fields.Item("tlf").Value)%></font> <%=(bruger.Fields.Item("fax").Value)%></font> <%=(bruger.Fields.Item("email").Value)%></font> <%=(bruger.Fields.Item("Ffirma").Value)%></font> <%=(bruger.Fields.Item("Fgade").Value)%></font> <%=(bruger.Fields.Item("Fpostnr").Value)%></font> <%=(bruger.Fields.Item("Fby").Value)%></font> <%=(bruger.Fields.Item("Fland").Value)%></font> Fra CharonCharten - hvilket måske er lidt mere kompliceret, eftersom ser er en repeat region med i billedet: <% ' 'Begin cart repeat region ' For i=0 to ubound(CCcart,2) if CCcart(CC_PRODUCTID,i) <> "" then %> <%=CCcart(CC_Quantity,i)%> <%=CCcart(CC_Name,i)%> <%=CCcart(CC_storrelseVare,i)%> <%=CCcart(CC_NrVare,i)%> <%=CCcart(CC_Price,i)%> <%=CCcart_LineTotal%> <% end if next 'end cart repeat region %> <%=CCcart_GrandTotal%> Håber virkelige der er nogen de kan hjælpe... P.S. Der skal selvølgelig være beskrivende tekst, foran de forskellige dynamiske tekstfelter, og evt. noget tabel eller lign. Mvh Sigurd
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
12. marts 2005 - 18:49
#1
P.S. </front> skal selvfølgelig ikke stå der efter den dynamiske tekst under recordset.....
12. marts 2005 - 18:59
#2
du trækker alleværdierne ud, og samler dem i en streng, som du sender mail JMail msg.Subject = strOrdre
12. marts 2005 - 19:01
#3
ex.: strOrdre = strOrdre & "Firmanavn: " & bruger.Fields.Item("firmanavn").Value) strOrdre = strOrdre & "CVR: " & bruger.Fields.Item("CVR").Value) osv...
12. marts 2005 - 19:03
#4
du skal nok lige have & vbCRLF i enden af hver linie, for at få et linieskift
12. marts 2005 - 19:06
#5
det skal da ikke være msg.Subject, bliver det så ikke alt sammen sat ind i subjektet?
12. marts 2005 - 19:07
#6
og der hvor du repeater, gør du følgende: For i=0 to ubound(CCcart,2) if CCcart(CC_PRODUCTID,i) <> "" then %> strOrdre = strOrdre & "Mængde: " & CCcart(CC_Quantity,i) &vbCtrl strOrdre = strOrdre & "Name: " & CCcart(CC_Name,i) &vbCtrl strOrdre = strOrdre & "storrelseVare: " & CCcart(CC_storrelseVare,i) &vbCtrl strOrdre = strOrdre & "NrVare: " & CCcart(CC_NrVare,i) &vbCtrl strOrdre = strOrdre & "Price: " & CCcart(CC_Price,i) &vbCtrl strOrdre = strOrdre & "LineTotal: " & CCcart_LineTotal &vbCtrl <% end if next 'end cart repeat region
12. marts 2005 - 19:09
#7
selvfølgelig, det gik lidt for hurtigt. Det skal selvfølgelig være: msg.body =
12. marts 2005 - 19:09
#8
msg.body = strOrdre
12. marts 2005 - 19:10
#9
får denne fejl: Microsoft VBScript compilation error '800a0401' Expected end of statement /sendordre.asp, line 39 strOrdre = strOrdre & "Firmanavn: " & bruger.Fields.Item("firmanavn").Value) ---------------------------------------------------------------------------^
12. marts 2005 - 19:10
#10
fejlen ligger til slut, altså efter .value)
12. marts 2005 - 19:16
#11
hvis dit recordset heddder bruger, så burde det være nok at skrive bruger("firmanavn")
12. marts 2005 - 19:17
#12
Så den kommer til at se sådan ud: strOrdre = strOrdre & "Firmanavn: " & bruger.("firmanavn").Value) ?
12. marts 2005 - 19:18
#13
det giver denne fejl: Expected identifier fejlen ligger efter bruger.
12. marts 2005 - 19:21
#14
uden .
12. marts 2005 - 20:02
#15
Så... Nu sender den meddeelsen... der er bare lige det problem, at der ikke står noget i den...
12. marts 2005 - 20:08
#16
husker du at : <% Set msg = Server.CreateObject("JMail.Message") msg.ContentType = "text/html" msg.Logging = True msg.Silent = True msg.From = "info@zenithart.dk" 'Afsender e-mail msg.FromName = "zenithart" msg.Charset = "iso-8859-1" msg.AddRecipient "min mail", "mit navn" msg.Subject = "ordre" msg.body = if not msg.Send("smtp.danhost.dk" ) then Response.write "<pre>" & msg.log & "</pre>" else Response.write "Meddelelsen er nu sendt!" end if Set msg = nothing %> skal stå under der hvor du laver din strOrdre, for ellers er strengen jo tom
12. marts 2005 - 20:14
#17
Ok.... Så langt så godt... Nu sker der skam noget. Hvordan får jeg det så rykket ned under hinanden?
12. marts 2005 - 20:36
#18
hvis det virker har du vel rykket det som det skal være.
12. marts 2005 - 20:46
#19
Jeg mener i selve mailen... Nu står det jo i een lang kører.... kan man ikke få det ned under hinanden...?
12. marts 2005 - 21:01
#20
du kan bruge &vbCtrl til at lave linieskift hvis du vi lhave det sat rigtig lækkert op skal det laves i html, og så skal du bruge mgs.HTMLBody = strOrdre til at sende mail en med
13. marts 2005 - 14:35
#21
Benytter &vbCtrl efter hver linie, men derfor står det stadig i een lang kører... Hvis jeg skal benytte html, og gerne vil have at oversigten over købte varer kommer ind i et tabel, hvordan skal det så skrives, hvis udgangstabellen ser sådan ud: <table width="100%" border="1" align="center" cellpadding="3" cellspacing="0" bordercolor="#333333"> <tr> <td colspan="2"><font face="Arial, Helvetica, sans-serif">Antal</font> </td> <td width="28%">Billede/Ramme</td> <td width="16%"><font face="Arial, Helvetica, sans-serif">størrelse</font></td> <td width="16%"><font face="Arial, Helvetica, sans-serif">Varenr.</font></td> <td width="3%"> </td> <td width="11%"><font face="Arial, Helvetica, sans-serif">Pris stk. </font></td> <td width="15%"><font face="Arial, Helvetica, sans-serif">Total</font></td> </tr> <% ' 'Begin cart repeat region ' For i=0 to ubound(CCcart,2) if CCcart(CC_PRODUCTID,i) <> "" then %> <tr> <td colspan="2"><%=CCcart(CC_Quantity,i)%></td> <td><%=CCcart(CC_Name,i)%></td> <td><%=CCcart(CC_storrelseVare,i)%></td> <td><%=CCcart(CC_NrVare,i)%></td> <td> </td> <td><div align="right">kr.<%=CCcart(CC_Price,i)%></div></td> <td><div align="right">kr.<%=CCcart_LineTotal%></div></td> </tr> <% end if next 'end cart repeat region %> <tr> <td colspan="5" rowspan="3"> </td> <td> </td> <td colspan="2"> </td> </tr> <tr> <td> </td> <td><font face="Arial, Helvetica, sans-serif">Pris i alt</font></td> <td><div align="right"><font face="Arial, Helvetica, sans-serif">kr.<%=CCcart_GrandTotal%></font></div></td> </tr> <tr> <td> </td> <td colspan="2"> </td> </tr> </table>
13. marts 2005 - 14:45
#22
så sætter du hver linie ind i: strOrdre = strOrdre & "linien ind her" &vbCtrl men husk der hvor der står " i normal html skal du skrive "" når der er asp værdier skriver du ex: strOrdre = strOrdre & "<td colspan=""2"">"& CCcart(CC_Quantity,i) &"</td>" &vbCtrl
13. marts 2005 - 15:11
#23
Så har jeg prøvet det. Har indsat en lille tabel som test, men får nu fejlmeddeelsen: Microsoft VBScript runtime error '800a01a8' Object required: 'strOrdre' /sendordre.asp, line 92 Tabellen ser sådan ud: <% strOrdre = strOrdre & "<table width=""50%"" border=""1"" cellpadding=""0"" cellspacing=""0"" bordercolor=""#000000">"" &vbCtrl strOrdre = strOrdre & "<tr>" &vbCtrl strOrdre = strOrdre & "<td> </td>" &vbCtrl strOrdre = strOrdre & "</tr>" &vbCtrl strOrdre = strOrdre & "</table>" &vbCtrl %> linie 92 er: mgs.HTMLBody = strOrdre
13. marts 2005 - 15:20
#24
du har flyttet et " på den forkerte side af > strOrdre = strOrdre & "<table width=""50%"" border=""1"" cellpadding=""0"" cellspacing=""0"" bordercolor=""#000000"">" &vbCtrl
13. marts 2005 - 16:34
#25
Jammen det ser jo rigtig godt ud... har fået sat det hele op... Er det også muligt at lave et show if??? Har en del af kunde informationen der hedder forsendelsesinformation. Er det muligt at kun at vise det hvis feltet "Ffirma" i tabellen "bruger" er udfyldt?
13. marts 2005 - 16:44
#26
du kan vel bare skrive: if bruger("Ffirma") > "" Then det der skal vises else hvis Ffirma ikke er udfyldt End If
13. marts 2005 - 16:50
#27
Ok.... Tusind tak - Så skulle den være i vinkel... Det var sku lækkert!!! Et sidste spørgsmål på faldrebet... Ved du hvordan man opretter et ordrenr.? hvis f.eks.: ordrenummeret står i tabellen "ordre" og feltet "ordrenr" så et eller andet med at tage det sidste ordrenr. og lægge een oveni...? Men ellers siger jeg tak for hjælpen....
13. marts 2005 - 17:03
#28
du definere bare ordrenr, som autonumber i tabellen, så fliver det altid fortløbende.
13. marts 2005 - 17:11
#29
poblemet er blot, at når kunden bestiller flere vare ad gangen, oprettes én post pr. vare, og der skal ordrenr. jo være de samme på alle posterne...
13. marts 2005 - 17:21
#30
har du ikke normaliserede din database? du bør jo have en tabel der indeholder ordre, og en der indeholder varer, og en tabel der ex hedder ordre_varer, som indeholder relationerne mellem de to tabeller.
13. marts 2005 - 18:23
#31
Hmmm. Ok.Har tabellen ordre, og tabellen varer - men ikke den sidste... Hvordan skal de relationer defineres???
13. marts 2005 - 18:36
#32
Kurser inden for grundlæggende programmering