Matus wrote in dk.edb.internet.webdesign.serverside.asp:
> Torben Brandt wrote:
> >
> Jeg var netop meget i tvivl på grund af den måde de skriver ordene
> "FileName" og "ContentType" med versaler, som jo typisk er noget man bruger
> i scriptsprog (eks. VBscript, JavaScript, onMouseOver osv.)
Jeg ved ikke om der er nogle generelle "tommelfinger-regler" hvad angår
navngivning af variable og program-sprog, men for mig betyder store bogstaver
bare at et nyt ord begynder...
>
> Ok, men så spekulerer jeg på, hvad stien mon skal hedde, når det er den
> (parsede) fil jeg står i, der skal vedhæftes..?
> Jeg laver et link, så du kan se hvordan jeg mener.
Et Link er altid en god idé! :)
"Problemet" med at vedhæfte en parset fil, er at den først bliver dannet, når
siden sendes ud fra serveren, og derfor ikke eksisterer på serveren. Men
mailen skal jo sendes fra serveren, så det kan ikke direkte lade sig gøre, men
problemet kan sagtens løses. Mere om det herunder.
>
>
> Både ja og nej. På den kluntede måde jeg har lavet det på nu, ender brugeren
> på en færdig fakturaside når han/hun trykker "Gå til kassen", som de på den
> mest hjælpeløse måde bedes om at sende ind til shoppen (grin ikke alt for
> larmende når du ser det ;). Men den rigtige måde at gøre det på ville
> selvfølgelig være, at brugeren blev sendt til en anden side, hvor jeg pænt
> takkede dem for ordren og forsikrede dem om, at deres varer vil blive sendt
> af sted hurtigst muligt - samtidig med at den genererede faktura bliver
> sendt som en vedhæftet fil (eller som selve mailen) til shopindehaveren, som
> på den måde modtager en seddel som han både kan bruge som plukliste, faktura
> og adresselabel i ét..!
Okay, jeg tror jeg er ved at være med :)
Jeg har kigget lidt på siderne, og vil forelå at du nederst på fakturaen
(faktura.asp) lægger en knap, hvor brugeren kan "godkende købet".
Når brugeren trykker på "godkend køb", så skal den samme side vises igen, men
bare med en meddelelse om at købet er gået igennem, og så skal "godkend køb"
ikke være der mere.
Det er ved det andet kald til faktura.asp at købet endeligt skal bestilles og
der derfor skal afsendes en mail.
> Når jeg sender den på den måde jeg hidtil har fundet ud af, så sendes den
> som html-side med de parsede data. Men fidusen er jo også at den netop skal
> sendes til shopejeren, og han måtte godt få de oplysninger *gg* (har dem jo
> i forvejen)
Ja, men som omtalt tidligere i dette indlæg, så foregår parsingen på vej ud af
serveren, og det eneste du kan bruge fra asp-siden er koderne, som fx er
Antal af vare <%= antal %> à <%= pris %> kr pr stk
Men deraf fremgår ikke hvad antallet er, det er først i parsingen at antallet
og prisen indsættes.
Derfor må vi generere en ny side (en ny faktura), som vi sender i mailen.
Som jeg læser dit indlæg, så vil du gerne have den til at ligne den, som vises
til brugeren, det kan også lade sig gøre.
Her kommer et kode-forslag til generering af denne nye faktura, som sendes i
mailen. Den skal naturligvis kun være en lille del af faktura.asp, for den
skal jo kun udføres hvis der er trykket på "godkend køb"-knappen og bagefter
skal fakturaen jo vises igen, så brugeren kan printe den ud, hvis han ikke har
gjort det endnu.
msg = Server.CreateObject("JMail.Message")
msg.Logging = True
msg.Silent = True
msg.From = [fra-mail]
msg.FromName = [fra-navn]
msg.Subject = "Ny bestilling"
msg.AddRecipient [til-mail]
msg.ContentType = "text/html"
s = "<html><body>"
s = s & "Her skal resten af html-koderne for fakturaen stå, <br>"
s = s & "og vi skal huske at sætte antal, priser, adresse osv <br>"
s = s & "ind, på samme måde som vi opbygger fakturaen til brugeren<br>"
s = s & "Fx sådan her:<br>"
s = s & "<table><tr><td colspan=""2"">Kunde</td></tr>"
s = s & "<tr><td>Navn:</td><td>" & Session("navn") & "</td></tr>"
s = s & "<tr><td>Adresse:</td><td>" & Session("adresse") & "</td></tr>"
s = s & "</table>"
s = s & "Og på denne måde opbygges hele mailen, hvor vi bare ikke skriver<br>"
s = s & "det til brugeren med Response.Write, men gemmer det i variablen s"
s = s & "</body></html>"
msg.HTMLBody = s
msg.Send = [mail-server-adresse]
Hvis det, du skal sende i mailen og det du skal give tilbage til brugeren, er
næsten ens, kunne du nøjes med at lave variablen s én gang, og bruge den både
til at lægge i mailen og til at skrive til skærmen med
Response.Write "Bestilling er gemt!<br><br>" & s
Hvis vi skal lægge stylesheetet i en ekstern fil (style.css) så bliver det
lidt mere teknisk. Vi kan godt forsøge, men jeg tror det vil være nemmest hvis
du først har fået den til at sende en eller anden mail. Så kan du skrive igen.
Husk at indholdet i en .css-fil kan lægges ind i html-filen i en <style>-blok.
Håber det hjalp, Torben
--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! =>
http://www.html.dk/tutorials