svamp Skrevet 2. juli 2004 Del Skrevet 2. juli 2004 (endret) Hei Jeg har et mail-skjema. I det skjemaet vil jeg at brukeren skal kunne velge hvem han vil sende mail til med to radiobuttons. Jeg har prøvd meg fram litt, men får ikke til. Skjemaet virker ellers. Koden er noe gratis greier jeg fant et sted: <% '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Freeware from Seiretto.com ' available at http://asp.thedemosite.co.uk ' ' DON'T forget to change the mail_to email address below!!! ' and thats all you need to change. '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim error error = 0 For Each f In Request.Form If Request.Form(f) = "" Then error = 1 End If Next If error=1 Then response.redirect "error.html" Else Dim f, emsg, mail_to, r, o, c, other mail_to = "[email protected]" fline = "_______________________________________________________________________"& vbNewLine hline = vbNewLine & "_____________________________________"& vbNewLine emsg = "" For Each f In Request.Form If mid(f,1,1)<>"S" = True Then 'do not save if input name starts with S emsg = emsg & f & " = " & Trim(Request.Form(f)) & hline End If Next Set objNewMail = Server.CreateObject("CDONTS.NewMail") objNewMail.From = Request("Email Address") objNewMail.Subject = "Message from contact page (version: 1.0)" objNewMail.To = mail_to objNewMail.Body = emsg & fline objNewMail.Send Set objNewMail = Nothing response.redirect "thankyou.html" End if %> Det eneste jeg har endra er response.redirect --> response.write, pluss navnet på input'ene i formen. Det er vel en if-test man må bruke for å klare det jeg vil? Prøvde med if request.form(r1)="v1" osv men det gikk ikke. r1 og v1 er radio gruppe-og enkeltnavn. Dette er vel ganske enkelt for dere asp-guruer men jeg ser det rett og slett ikke:hmm: . Hjelp? edit: husk at jeg er omtrent helt blank på asp så forklaringen bør helst inneholde koden Endret 2. juli 2004 av svamp Lenke til kommentar
Kirikiri Skrevet 5. juli 2004 Del Skrevet 5. juli 2004 Kan du poste selve HTML-koden også? Litt vanskelig å forstå "for each f in request.form" uten å se hva f skal være. Kirikiri Lenke til kommentar
svamp Skrevet 5. juli 2004 Forfatter Del Skrevet 5. juli 2004 (endret) Hei, jeg kan poste html'en også, men det er ingenting som heter f der. Tror f må være en standard variabel for "fields" eller noe sånt? Vet ikke. Men her er koden: I kontakt.asp: <!--#include file="topp.html" --> <div id="undermeny"> <!--Logo her--> </div> <div id="hoved"> <h2>Kontakt</h2> <form action="epost.asp" method="post" name="kontakt"> <dl> <dt>Ditt navn:</dt> <dd><input class="boks" type="text" name="Navn" /></dd> <dt>Din E-post:</dt> <dd><input class="boks" type="text" name="Epost" /></dd> <dt>Melding:</dt> <dd><textarea class="boks" cols="30" rows="10" name="Melding"></textarea></dd> <dt><input class="knapp" name="Submit" type="submit" value="Send inn" /></dt> </dl> </form> </div> <!--#include file="bunn.html" --> I epost.asp: <!--#include file="topp.html" --> <div id="undermeny"> </div> <div id="hoved"> <h2>Kontakt</h2> <% Dim error error = 0 For Each f In Request.Form If Request.Form(f) = "" Then error = 1 End If Next If error=1 Then response.write "Det skjedde en feil. Sjekk utfyllingen." Else Dim f, emsg, mail_to, r, o, c, other mail_to = "epostadressen min" fline = "_______________________________________________________________________"& vbNewLine hline = vbNewLine & "_____________________________________"& vbNewLine emsg = "" For Each f In Request.Form If mid(f,1,1)<>"S" = True Then 'Ikke lagre om navn starter med S emsg = emsg & f & " = " & Trim(Request.Form(f)) & hline End If Next Set objNewMail = Server.CreateObject("CDONTS.NewMail") objNewMail.From = Request("Epost") objNewMail.Subject = "Melding fra hjemmesiden" objNewMail.To = mail_to objNewMail.Body = emsg & fline objNewMail.Send Set objNewMail = Nothing response.write "E-post er sendt." End if %> </div> <!--#include file="bunn.html" --> Endret 5. juli 2004 av svamp Lenke til kommentar
Kirikiri Skrevet 5. juli 2004 Del Skrevet 5. juli 2004 Mulig jeg er blind, men hvor er radio-boksene dine? Eller har du kopiert inn halvveis testet kode? (Fort gjort å gjøre det.) Du bygger opp ratiobuttons på denne formen: <input TYPE="radio" NAME="[navn på radioboks-liste, går igjen i alle]" VALUE="[verdi til spesifikk radiobutton]">[det den skal vises som] Og i epost.asp finner du verdien ved å gjøre [minradioverdi] = request.form("[navn på radioboks-liste]") Den beste måten å debugge asp på er å kjøre på med response.write for nesten hver lille ting du foretar deg. Kanskje du kan utvide denne For Each f In Request.Form If Request.Form(f) = "" Then error = 1 End If Next til noe sånt: For Each f In Request.Form If Request.Form(f) = "" Then error = 1 else response.write "<br>" & request.form(f) End If Next så ser du i hvertfall hva som sendes med skjemaet før den prøver å sende eposten. Kirikiri Lenke til kommentar
svamp Skrevet 5. juli 2004 Forfatter Del Skrevet 5. juli 2004 Hei Jeg hadde visst fjerna radioknappene fra koden fordi jeg ikke fikk det til. Men nå har jeg lagt de inn igjen, og brukt koden du viste, og nå fungerer det som bare det. Takk skal du ha! Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå