Avatar billede mike_1212 Nybegynder
10. november 2004 - 18:16 Der er 15 kommentarer og
2 løsninger

HTML eller ASP

Hej Eksperter

Jeg skal ha en form sendt med til mig selv via ASP. Formen kommer også med, men rodet. Er det i HTML'en jeg skriver noget eller er det i ASP'en?

Kan man evt hente formdelene ind hver for sig? Istedet for:

For Each Item in Request.Form
  For iCount = 1 to Request.Form(Item).Count
        Tekst = Tekst & Item & " = " & Request.Form(Item)(iCount) & chr(10)
  Next
Next

Håber i kan hjælpe. Mike
Avatar billede peter_hansen Nybegynder
10. november 2004 - 18:35 #1
hvis du har kaldt din form et navn kan du hente den specifikt

eksmpel

<form method="post">
<input name="test">
</form>

for at hente formen skriver du så

request.form("test")
Avatar billede mike_1212 Nybegynder
10. november 2004 - 18:51 #2
Jeg kan godt få hentet formen og får også oplysningerne ned i min mail. Ville bare gerne at man kunne kontrollere i hvilken rækkefølge de kommer. Kan man ikke requeste hver enkel formdel? og hvordan?
Avatar billede mkiii Nybegynder
10. november 2004 - 20:14 #3
kan du ikke lige prøve at uddybe hva det er du vil
Avatar billede mike_1212 Nybegynder
10. november 2004 - 20:27 #4
Ok, jeg skal gøre mit bedste. Jeg har et spørgeskema på en side og når man trykker send virker den også fint, jeg modtager en mail med de forskellige oplysninger. Det jeg gerne ville kunne gøre er at de oplysninger kom i en bestemt orden istedet for som nu i en stor rodebunke. Tænkte på om man ikke kunne kode det i ASP filen så de kommer i en bestemt rækkefølge?

Eks:

(Informationer der er udfyldt i text fields)
Navn: ?????
Mail: ?????
osv....

(og igen de informationer der er udfyldt med nogle check boxe)
Jeg synes at.....
Jeg kan ikke.....
osv...


Her er koden:
<%

Tekst = ""
Title = "Mail"
ToMail = "???@mail.dk"
FromMail = "???@mail.dk"

For Each Item in Request.Form
  For iCount = 1 to Request.Form(Item).Count
        Tekst = Tekst & Item & " = " & Request.Form(Item)(iCount) & chr(10)
  Next
Next

if Tekst <> "" then  Mail ToMail, FromMail, Title, Tekst


function Mail(ToMail, FromMail, title, texten )


    Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
    Mailer.RemoteHost = "?????????"
    Mailer.FromAddress = FromMail
    Mailer.AddRecipient ToMail, ToMail
    Mailer.Subject = title
    Mailer.BodyText = texten
    Mailer.CharSet = 2

    if not Mailer.SendMail then
    Response.Write " Mailing Failed... Error is: <br>"
    Response.Write Mailer.Response
    else
    Response.Write " sent successfully...<p>"
   
    end if

    Set Mailer = nothing

end function

Response.Redirect "afsendt.htm"

%>
Avatar billede mkiii Nybegynder
10. november 2004 - 20:30 #5
response.write request("form1")
response.write request("form3")
response.write request("form2")
Avatar billede grafikeren Nybegynder
10. november 2004 - 20:35 #6
De enkelte formled hedder:

formled1 = request.form("formled1")
mail = request.form("mail")
navn = request.form("navn")


Simpelt... Din for each item in request.form kan du ikke rigtig bruge til så meget...
Avatar billede mike_1212 Nybegynder
10. november 2004 - 20:37 #7
Er ikke helt med på hvad du mener. Kan man ikke requeste hver enkelt del af formen: navn - mail - hjemmeside ....osv

Jeg er meget i tvivl om hvordan jeg skal skrive det for at det virker.
Avatar billede mike_1212 Nybegynder
10. november 2004 - 20:38 #8
Hov så ikke lige dit svar Grafikeren, det er noget i den stil jeg leder efter, tester lige om jeg kan få det til at virke
Avatar billede mike_1212 Nybegynder
10. november 2004 - 20:46 #9
Er rimelig nybegynder i det her, så jeg gør nok et eller andet grueligt galt.
Koden som den ser ud nu:

<%

Tekst = ""
Title = "Mail"
ToMail = "+++@mail.dk"
FromMail = "+++@mail.dk"

navn = request.form("navn")
adresse = request.form("adresse")
mail = request.form("mail")

if Tekst <> "" then  Mail ToMail, FromMail, Title, Tekst

function Mail(ToMail, FromMail, title, texten )

    Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
    Mailer.RemoteHost = "mail.++++++++.++"
    Mailer.FromAddress = FromMail
    Mailer.AddRecipient ToMail, ToMail
    Mailer.Subject = title
    Mailer.BodyText = texten
    Mailer.CharSet = 2

    if not Mailer.SendMail then
    Response.Write " Mailing Failed... Error is: <br>"
    Response.Write Mailer.Response
    else
    Response.Write " sent successfully...<p>"
   
    end if

    Set Mailer = nothing

end function

Response.Redirect "afsendt.htm"

%>
Avatar billede mike_1212 Nybegynder
10. november 2004 - 22:54 #10
Det virker desværre ikke. Er der nogen der kan se hvad jeg har gjort forkert i den ovenstående kode? Håber i kan hjælpe mig.
Avatar billede grafikeren Nybegynder
11. november 2004 - 00:23 #11
Du bruger jo ikke navn, adresse og mail i din funktion.

Du har fået hjælp til at bruge request.form(""), og den virker 100% hvis du sender noget til den. Test følgende, som ihvertfald virker... :o)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="this.asp">
  <p>
    <input name="felt1" type="text" id="felt1">
    <br>
    <input name="felt2" type="text" id="felt2">
    <br>
    <input name="felt3" type="text" id="felt3">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>

<br><br><br>

<%
if request.form("felt1") <> "" then
    response.write("Der bliver sendt noget via formen...<br>" )
    felt1 = request.form("felt1")
    felt2 = request.form("felt2")
    felt3 = request.form("felt3")
   
    response.write(felt1&", "&felt2&", "&felt3)
end if
%>

</body>
</html>
Avatar billede grafikeren Nybegynder
11. november 2004 - 00:27 #12
Din mailer er et andet problem... Man bruger din mailer på følgende måde:

Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
Mailer.FromName  = "dig"
Mailer.FromAddress= "dig@somehost.com"
Mailer.RemoteHost = "mailhost.?.net"

Mailer.AddRecipient Request.Form("ToName"), Request.Form("ToAddress")
Mailer.Subject  =  Request.Form ("Subject")
Mailer.BodyText  = Request.Form ("MsgBody")

if Mailer.SendMail then
  Response.Write "Mail sent..."
else
  Response.Write "Mail send failure. Error was " & Mailer.Response
end if
Avatar billede mike_1212 Nybegynder
11. november 2004 - 15:48 #13
He he, nu er jeg først forvirret, roder vist godt rundt i det. Jeg er glad for din hjælp. I din anden sidste kommentar er der både html og asp, er det meningen? Er det muligt at vise mig hele asp- scriptet og html'en for sig, for det lille eksempel du har givet. Har prøvet en masse forskellige ting, men mine neewbie evner er åbenbart for dumme :)
Avatar billede grafikeren Nybegynder
11. november 2004 - 19:50 #14
asp og html 'skal' jo blandes. Gem mit anden sidste svar i en fil, som hedder this.asp... Så virker alt!

ASP og HTML skal naturligvis være på samme side...
Avatar billede mike_1212 Nybegynder
11. november 2004 - 20:06 #15
Men så er der jo ikke nogen oplysninger der fortæller hvor mailen skal hen. Er ked af at jeg ikke lige fatter hvad du mener. Det virkede bare tidligere med en ASP fil og en HTML fil der indeholdt en side med en form. Det forstod jeg nogenlunde, men manglede bare at få tingene ind i ordentlig rækkefølge.Skal dit sidste svar og andetsidste svar ikke "blandes" sammen?
Avatar billede grafikeren Nybegynder
11. november 2004 - 23:14 #16
Du vil altså gerne ha' en side hvor du udfylder til, fra, tekst og emne? Eller hva'?

Jeg kan godt blande koden for dig... Du kunne også forsøge selv. :o) Her følger:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="this.asp">
  <table width="600" border="0" cellspacing="4" cellpadding="4">
    <tr>
      <td width="126"><strong>Til - navn:</strong></td>
      <td width="446"><input name="tilnavn" type="text" id="til2" size="30"></td>
    </tr>
    <tr>
      <td><strong>Til - e-mail:</strong></td>
      <td><input name="tilmail" type="text" id="fra2" size="30"></td>
    </tr>
    <tr>
      <td><strong>Fra - navn:</strong></td>
      <td><input name="franavn" type="text" id="emne2" size="30"></td>
    </tr>
    <tr>
      <td><strong>Fra E-mail:</strong></td>
      <td><input name="framail" type="text" id="emne3" size="30"></td>
    </tr>
    <tr>
      <td><strong>Emne:</strong></td>
      <td><input name="emne" type="text" id="emne3" size="30"></td>
    </tr>
    <tr>
      <td align="left" valign="top"><strong>Besked:</strong></td>
      <td><textarea name="besked" cols="40" rows="5" id="textarea3"></textarea></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Submit"></td>
    </tr>
  </table>

</form>

  <br><br><br>

<%
if request.form("tilnavn") <> "" then
    response.write("Der bliver sendt noget via formen...<br>" )
    STRtilNavn = request.form("tilnavn")
    STRtilMail = request.form("tilmail")
    STRfraNavn = request.form("franavn")
    STRfraMail = request.form("framail")
    STRemne = request.form("emne")
    STRbesked = request.form("besked")
   
    'send mails
    Set Mailer = Server.CreateObject("SMTPsvg.Mailer")
    Mailer.FromName = STRfraNavn
    Mailer.FromAddress = STRfraMail
    Mailer.RemoteHost = "mailhost.?.net" 'dette skal du udfylde med din mailhost!
   
    Mailer.AddRecipient STRtilNavn, STRtilMail
    Mailer.Subject  =  STRemne
    Mailer.BodyText  = STRbesked
   
    if Mailer.SendMail then
      Response.Write "Mail sent..."
    else
      Response.Write "Mail send failure. Error was " & Mailer.Response
    end if
   
    mailer.close
end if
%>

</body>
</html>





Så er alt lavet til dig... pust... Gem filen som this.asp og udfyld din udbyders host adresse. Så virker det.
Avatar billede mike_1212 Nybegynder
11. november 2004 - 23:31 #17
Jag takker mange mange mange gange for din tid og din tålmodighed, der er både point og god karma på vej til dig. TAK!!
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