Gå til innhold

Anbefalte innlegg

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 :blush:

Endret av svamp
Lenke til kommentar
Videoannonse
Annonse

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 av svamp
Lenke til kommentar

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...