Avatar billede jmjveb Nybegynder
08. marts 2008 - 10:49 Der er 24 kommentarer og
1 løsning

Tjekke og Sende oplysninger i FORMULAR med ASP

Jeg har en formular, hvor i man skal skrive oplysninger. Disse oplysninger sendes via asp, som også tjekker om felterne er udfyldt - bl.a. email.
Jeg modtager godt nok emailen - men oplysningerne er ikke med - hvad mangler ??
------------------------------------------------------------------
<%   
Set objMail = Server.CreateObject( "CDONTS.NewMail" )
objMail.To = "min_email@adresse.dk"
objMail.From = ""
objMail.Subject = "hej du der"
objMail.Body = "Hej Modtager" & vbcrlf & vbcrlf & "E-mail fra min hjemmeside"
objMail.Host = "mailout.one.com"
objMail.Send
Set objMail = Nothing
%>
------------------------------------------------------------------

<table border="0" width="100%" cellspacing="8" cellpadding="8">
<tr>
<td colspan="2" valign="top" align="left">
<% IF strNavn <> "" THEN %>
Din evaluering er modtaget!<br>
<% ELSE %>
</tr><script type="text/JavaScript" src="valid.js"></script>
<form action="index.asp" method="post" onSubmit="return validerIndex()">
-----her indholdet i selve formularen------
</form><% END IF %>
Avatar billede keysersoze Guru
08. marts 2008 - 10:56 #1
i din mail er der slet ikke indsat nogle asp-variabler?

objMail.Body = "Hej " & Request.Form("modtager") & vbcrlf & vbcrlf & "E-mail fra min hjemmeside"
Avatar billede jmjveb Nybegynder
08. marts 2008 - 11:06 #2
Det hjalp ikke - får godt nok en mail - men ingen oplysninger i formulaern er med.

Hvis jeg indsætter :
<%   
strSide = "index"

' --- ! ---Send
   
    strNavn = Request.Form("navn")

IF strNavn <> "" THEN
       
for i = 1 to Request.Form.Count
    tmp = tmp & Request.Form.Key(i) & ": " & Request.Form.Item(i) & vbcrlf & vbcrlf
next
    tmp = tmp & vbcrlf & "Date:" & now()
   
'response.write tmp
Set objMail = Server.CreateObject( "CDONTS.NewMail" )
objMail.To = "jmjveb@stofanet.dk"
objMail.From = ""
objMail.Subject = "hej du der"
objMail.Body = "Hej" & Request.Form("tmp") & vbcrlf & vbcrlf & "E-mail fra min hjemmeside"
objMail.Host = "mailout.one.com"
objMail.Send
Set objMail = Nothing
%>

kan jeg slet ikke se siden........
Avatar billede nielle Nybegynder
08. marts 2008 - 11:25 #3
Du skal i hvert fald ikke sende mailen før at formularen er submittet:

<table border="0" width="100%" cellspacing="8" cellpadding="8">
<tr>
<td colspan="2" valign="top" align="left">
<%
strNavn = Request.Form("navn")

If strNavn <> "" Then
    Set objMail = Server.CreateObject( "CDONTS.NewMail" )
    objMail.To = "min_email@adresse.dk"
    objMail.From = ""
    objMail.Subject = "hej du der"
    objMail.Body = "Hej Modtager" & vbcrlf & vbcrlf & "E-mail fra min hjemmeside" & vbcrlf & vbcrlf
    objMail.Host = "mailout.one.com"
    objMail.Send
    Set objMail = Nothing
%>
Din evaluering er modtaget!<br>
<%
Else
%>
</tr>

<script type="text/JavaScript" src="valid.js"></script>

<form action="index.asp" method="post" onSubmit="return validerIndex()">
-----her indholdet i selve formularen------
</form>
<%
End If
%>


PS: Er alt dette noget kode som står i index.asp siden? For det er jo der at fomen sender oplysningerne til.
Avatar billede keysersoze Guru
08. marts 2008 - 11:27 #4
nej - for det du laver er ret så meget forkert.

objMail.Body = "Hej " & tmp & vbcrlf & vbcrlf & "E-mail fra min hjemmeside"
Avatar billede keysersoze Guru
08. marts 2008 - 11:29 #5
men altså - det er desværre ret umuligt at vurdere hvordan det skal se ud med de info du giver os, men request.form henter data direkte fra et formfelt og intet andet - så opbygger du en variabel der hedder tmp skal du kun indsætte variablen og ikke putte variablen ind i en request.form eller noget andet.
Avatar billede nielle Nybegynder
08. marts 2008 - 12:07 #6
Den med Form.Request() nu ikke så forkert at det burde betyde at siden slet ikke blev vist.

Men det kunne bl.a. den manglende initialisereing af tmp eller den manglende End If sagtens gøre.

<%   
strSide = "index"

' --- ! ---Send
   
strNavn = Request.Form("navn")

If strNavn <> "" Then
    temp = ""
    For i = 1 To Request.Form.Count()
        tmp = tmp & Request.Form.Key(i) & ": " & Request.Form.Item(i) & vbcrlf & vbcrlf
    Next
    tmp = tmp & vbcrlf & "Date:" & now()
   
    ' Response.Write tmp

    Set objMail = Server.CreateObject( "CDONTS.NewMail" )
    objMail.To = "jmjveb@stofanet.dk"
    objMail.From = ""
    objMail.Subject = "hej du der"
    objMail.Body = "Hej " & tmp & vbcrlf & vbcrlf & "E-mail fra min hjemmeside" & vbcrlf & vbcrlf
    objMail.Host = "mailout.one.com"
    objMail.Send
    Set objMail = Nothing
End If
%>
Avatar billede nielle Nybegynder
08. marts 2008 - 12:12 #7
tmp = ""
Avatar billede jmjveb Nybegynder
08. marts 2008 - 13:32 #8
Jeg har nu flg.: ( efter det nielle skriver )
<%   
strSide = "index"

' --- ! ---Send
   
strNavn = Request.Form("navn")

If strNavn <> "" Then
    temp = ""
    For i = 1 To Request.Form.Count()
        tmp = tmp & Request.Form.Key(i) & ": " & Request.Form.Item(i) & vbcrlf & vbcrlf
    Next
    tmp = tmp & vbcrlf & "Date:" & now()
   
    ' Response.Write tmp

    Set objMail = Server.CreateObject( "CDONTS.NewMail" )
    objMail.To = "jmjveb@stofanet.dk"
    objMail.From = ""
    objMail.Subject = "hej du der"
    objMail.Body = "Hej " & tmp & vbcrlf & vbcrlf & "E-mail fra min hjemmeside" & vbcrlf & vbcrlf
    objMail.Host = "mailout.one.com"
    objMail.Send
    Set objMail = Nothing
End If
%>

Nu får jeg en mail med oplysningerne - dette virker i hvert fald.
Blot er der opstået et nyt problem nemlig - hvis man klikker "send" - virker valid.js ikke - den der tjekker om oplysningerne er udfyldt i de forskellige felter - en afsender email er heller ikke med.
Avatar billede nielle Nybegynder
08. marts 2008 - 13:37 #9
Det er jo så nok et problem med enten din form eller dit javascript - og du har ikke vist os nogen af dem...

Siden du har sat:

objMail.From = ""

- så er det vel ikke så overraskende at der ikke er nogen afsender.
Avatar billede jmjveb Nybegynder
08. marts 2008 - 13:42 #10
hvad ska der stå i objMail.From = "??"
ve du det ?
Avatar billede jmjveb Nybegynder
08. marts 2008 - 13:46 #11
Form :
</tr><script type="text/JavaScript" src="valid.js"></script>
          <form action="index.asp" method="post" onSubmit="return validerIndex()">
          <tr>
            <td colspan="2" valign="top" align="left"><b>Evaluering af min mail</b></td>
          </tr>
          <tr>
            <td colspan="2" valign="top" align="left">Vi håber, at I har haft glæde af
              min mail og at I derfor
              vil bruge 5-10 minutter til at svare på nedenstående
              spørgsmål.</td>
          </tr>
          <tr>
            <td valign="top" align="left"><b>1.</b> Hvad er jeres opfattelse af materialet som helhed?</td>
            <td nowrap valign="top" align="left"><input type="radio" value="rigtigt_godt" name="nr1">
              Rigtigt godt<br>
              <input type="radio" value="Godt" name="nr1">  Godt<br>
              <input type="radio" value="delvist_godt" name="nr1">
              Delvist godt<br>
              <input type="radio" value="ikke_som_forventet" name="nr1">
              Ikke som forventet</td>
          </tr>
          <tr>
            <td valign="top" align="left"><b>2.</b> Hvad var jeres oplevelse af materialet?</td>
            <td nowrap valign="top" align="left"><input type="radio" value="Det_var_spaendende_og_engagerende" name="nr2">
              Det var spændende og engagerende<br>
              <input type="radio" value="det_var_som_almindeligt_undervisningsmateriale" name="nr2">
              Det var som almindeligt undervisningsmateriale<br>
              <input type="radio" value="det_var_kedeligt_og_uinspirerende" name="nr2">
              Det var kedeligt og uinspirerende</td>
          </tr>
          <tr>
            <td valign="top" align="left"><b>3.</b> Hvilke emner/opgaver syntes I fungerede godt og
              hvorfor?</td>
            <td valign="top" align="left"><textarea rows="4" name="nr3" cols="40"></textarea></td>
          </tr>
          <tr>
            <td valign="top" align="left" colspan="2"><b>Kun til dig</b></td>
          </tr>
          <tr>
            <td valign="middle" align="right">Skole:</td>
            <td valign="top" align="left"><input type="text" name="skole" size="30"></td>
          </tr>
          <tr>
            <td valign="middle" align="right">Navn:</td>
            <td valign="top" align="left"><input type="text" name="navn" size="30"></td>
          </tr>
          <tr>
            <td valign="middle" align="right">E-mail</td>
            <td valign="top" align="left"><input type="text" name="email" size="30"></td>
          </tr>
          <tr>
            <td valign="top" align="left" colspan="2">Tak fordi du ville hjælpe
              os med at gøre det muligt at forbedre &quot;min mail&quot;.</td>
          </tr>
          <tr>
            <td valign="top" align="left" colspan="2">Med venlig hilsen mig</td>
          </tr>
          <tr>
            <td valign="middle" align="center" colspan="2"><input type="submit" value="SEND"></td>
          </tr></form><% END IF %>

valid.js :
// JavaScript Document
    function validerIndex()
    {
        if (document.form[0].nr1.value == "")
        {
          alert('Du har ikke udfyldt felt nr.: 1'); return false
        }
        if (document.form[0].nr2.value == "")
        {
          alert('Du har ikke udfyldt felt nr.: 2'); return false
        }
        if (document.form[0].nr3.value == "")
        {
          alert('Du har ikke udfyldt felt nr.: 3'); return false
        }
          if (document.form[0].skole.value == "")
        {
        alert('Du har ikke udfyldt feltet: Skole'); return false
        }
        if (document.form[0].navn.value == "")
        {
          alert('Du har ikke udfyldt feltet: Navn'); return false
        }
        if (document.form[0].email.value == "")
        {
          alert('Du har ikke udfyldt feltet: E-mail!'); return false
        }
        var index = document.form[0].email.value.indexOf("@")
        if (index == -1)
        {
          alert('Du har ikke udfyldt feltet: E-mail korrekt!'); return false
        }
        if (index != document.form[0].email.value.lastIndexOf("@"))
        {
          alert('Du har ikke udfyldt feltet: E-mail korrekt!'); return false
        }
Avatar billede nielle Nybegynder
08. marts 2008 - 14:01 #12
08/03-2008 13:42:34 > Der skal jo stå afsendere adresse. Jeg ved ikke hvor du får den fra. Er det et inputfelt i din form eller er det en fast kosntant værdi?
Avatar billede jmjveb Nybegynder
08. marts 2008 - 14:12 #13
der er et felt til at skrive email - valid.js tjekker om det bliver skrevet.

men hvad med : objMail.From = "??"
Avatar billede nielle Nybegynder
08. marts 2008 - 14:16 #14
08/03-2008 13:46:24>

Bliver dine alerts fra javascriptet overhovedet kaldt eller hvad?

Selv ville jeg nok lave det om fra:

<form action="index.asp" method="post" onSubmit="return validerIndex()">

- til:

<form action="index.asp" method="post" name="contactForm" onSubmit="return validerIndex()">


Og så lave noget tilsvarende ti javascriptet:

function validerIndex(form)
{
    if (form.nr1.value == "")
    {
        alert('Du har ikke udfyldt felt nr.: 1'); return false
    }

        if (form.nr2.value == "")
        {
        alert('Du har ikke udfyldt felt nr.: 2'); return false

        }

        if (form.nr3.value == "")
        {
        alert('Du har ikke udfyldt felt nr.: 3'); return false
        }

    if (form.skole.value == "")
        {
        alert('Du har ikke udfyldt feltet: Skole'); return false
        }

    if (form.navn.value == "")
    {
        alert('Du har ikke udfyldt feltet: Navn'); return false
        }

        if (form.email.value == "")
        {
        alert('Du har ikke udfyldt feltet: E-mail!'); return false
        }

    var index = form.email.value.indexOf("@")
    if (index == -1)
        {
        alert('Du har ikke udfyldt feltet: E-mail korrekt!'); return false
        }

        if (index != form.email.value.lastIndexOf("@"))
        {
        alert('Du har ikke udfyldt feltet: E-mail korrekt!'); return false
        }

    return true;
}
Avatar billede nielle Nybegynder
08. marts 2008 - 14:18 #15
> der er et felt til at skrive email - valid.js tjekker om det bliver skrevet.
> men hvad med : objMail.From = "??"

Jamen, hvorfor burger du så ikke værdien fra det felt?

objMail.From = Form.Request("email")
Avatar billede jmjveb Nybegynder
08. marts 2008 - 14:20 #16
det er måske lettere med url´en : http://munkfrim.dk
så ka du se koden
Avatar billede nielle Nybegynder
08. marts 2008 - 14:26 #17
Tja, jeg kan se HTML koden og også din JavaScript - men ASP koden kan jeg jo ikke se på den måde.

MEN ... du har en fejl i dit javascript. Din valideringsfunktion er slet ikke afsluttet.
Avatar billede jmjveb Nybegynder
08. marts 2008 - 14:28 #18
</form><% END IF %> ?
Avatar billede nielle Nybegynder
08. marts 2008 - 14:32 #19
Nej, det der er ikke dit javascript.
Avatar billede jmjveb Nybegynder
08. marts 2008 - 16:12 #20
nej - jeg brugte det du skrev :
function validerIndex(form)
{
    if (form.nr1.value == "")
    {
        alert('Du har ikke udfyldt felt nr.: 1'); return false
    }
men det virker ikke..
nu har jeg :
// JavaScript Document
    function validerIndex()
    {
        if (document.form[0].nr1.value == "")
        {
          alert('Du har ikke udfyldt felt nr.: 1'); return false
        }
        if (document.form[0].nr2.value == "")
        {
          alert('Du har ikke udfyldt felt nr.: 2'); return false
        }
        if (document.form[0].nr3.value == "")
        {
          alert('Du har ikke udfyldt felt nr.: 3'); return false
        }
          if (document.form[0].skole.value == "")
        {
        alert('Du har ikke udfyldt feltet: Skole'); return false
        }
        if (document.form[0].navn.value == "")
        {
          alert('Du har ikke udfyldt feltet: Navn'); return false
        }
        if (document.form[0].email.value == "")
        {
          alert('Du har ikke udfyldt feltet: E-mail!'); return false
        }
        var index = document.form[0].email.value.indexOf("@")
        if (index == -1)
        {
          alert('Du har ikke udfyldt feltet: E-mail korrekt!'); return false
        }
        if (index != document.form[0].email.value.lastIndexOf("@"))
        {
          alert('Du har ikke udfyldt feltet: E-mail korrekt!'); return false
        }
    }
det virker ikke noget af det
Avatar billede nielle Nybegynder
08. marts 2008 - 16:25 #21
Nej, jeg lavede også en lille fejl:

Det skulle have været:

<form action="index.asp" method="post" id="contactForm" onSubmit="return validerIndex(contactForm)">
Avatar billede jmjveb Nybegynder
08. marts 2008 - 16:29 #22
utroligt at det ik vil virke - man blir jo skør oven i
Avatar billede jmjveb Nybegynder
08. marts 2008 - 16:41 #23
nej ik det m. contactForm - nu virker det næsten, mangler blot der skal komme en meddelelse op når man har sendt formularen.
index.asp ser sådan ud nu:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" />
<%   
strSide = "index"

' --- ! ---Send
   
strNavn = Request.Form("navn")

If strNavn <> "" Then
    temp = ""
    For i = 1 To Request.Form.Count()
        tmp = tmp & Request.Form.Key(i) & ": " & Request.Form.Item(i) & vbcrlf & vbcrlf
    Next
    tmp = tmp & vbcrlf & "Date:" & now()
   
    ' Response.Write tmp

    Set objMail = Server.CreateObject( "CDONTS.NewMail" )
    objMail.To = "jmjveb@stofanet.dk"
    objMail.From = Request.Form("email")
    objMail.Subject = "meddelelse vedr........"
    objMail.Body = "" & tmp & vbcrlf & vbcrlf & "" & vbcrlf & vbcrlf
    objMail.Host = "mailout.one.com"
    objMail.Send
    Set objMail = Nothing
End If
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title></head>

<body>
<table border="0" width="100%" cellspacing="8" cellpadding="8">
<tr>
<td colspan="2" valign="top" align="left">
<%     IF strNavn <> "" THEN %>
Din evaluering er modtaget!<br>
<br>
<br>
Med venlig hilsen<br>
<br>
<strong>Mig</strong><br>
<br>
<br><br><br></td>
<% ELSE %>
</tr><script type="text/JavaScript" src="valid.js"></script>
<form action="index.asp" method="post" onSubmit="return validerIndex()">
<tr>
<td colspan="2" valign="top" align="left"><b>Evaluering af min mail</b></td></tr><tr>
<td colspan="2" valign="top" align="left">Vi håber, at I har haft glæde af
min mail og at I derfor
vil bruge 5-10 minutter til at svare på nedenstående spørgsmål.</td></tr>
<tr>
<td valign="top" align="left"><b>1.</b> Hvad er jeres opfattelse af materialet som helhed?</td>
<td valign="top" align="left"><input type="radio" value="rigtigt_godt" name="nr1">Rigtigt godt<br>
<input type="radio" value="Godt" name="nr1">  Godt<br>
<input type="radio" value="delvist_godt" name="nr1">Delvist godt<br>
<input type="radio" value="ikke_som_forventet" name="nr1">Ikke som forventet</td></tr>
<tr>
<td valign="top" align="left"><b>2.</b> Hvad var jeres oplevelse af materialet?</td>
<td valign="top" align="left"><input type="radio" value="Det_var_spaendende_og_engagerende" name="nr2">Det var spændende og engagerende<br>
<input type="radio" value="det_var_som_almindeligt_undervisningsmateriale" name="nr2"> Det var som almindeligt undervisningsmateriale<br>
<input type="radio" value="det_var_kedeligt_og_uinspirerende" name="nr2">Det var kedeligt og uinspirerende</td></tr>
<tr>
<td valign="top" align="left"><b>3.</b> Hvilke emner/opgaver syntes I fungerede godt og hvorfor?</td>
<td valign="top" align="left"><textarea rows="4" name="nr3" cols="40"></textarea></td></tr>
<tr>
<td valign="top" align="left" colspan="2"><b>Kun til dig</b></td></tr>
<tr>
<td valign="middle" align="right">Skole:</td>
<td valign="top" align="left"><input type="text" name="skole" size="30"></td>
</tr>
<tr>
<td valign="middle" align="right">Navn:</td>
<td valign="top" align="left"><input type="text" name="navn" size="30"></td>
</tr>
<tr>
<td valign="middle" align="right">E-mail</td>
<td valign="top" align="left"><input type="text" name="email" size="30"></td></tr>
<tr>
<td valign="top" align="left" colspan="2">Tak fordi du ville hjælpe os med at gøre det muligt at forbedre &quot;min mail&quot;.</td></tr>
<tr>
<td valign="top" align="left" colspan="2">Med venlig hilsen mig</td></tr>
<tr>
<td valign="middle" align="center" colspan="2"><input type="submit" value="send">
  <input type="reset" value="fjern" /></td>
</tr></form><% END IF %>
</table>
</body>
</html>

valid.js ser sådan ud :
    function validerIndex()
    {
        if (document.forms[0].nr1.value == "")
        {
          alert('Du har ikke udfyldt felt nr.: 1'); return false
        }
        if (document.forms[0].nr2.value == "")
        {
          alert('Du har ikke udfyldt felt nr.: 2'); return false
        }
        if (document.forms[0].nr3.value == "")
        {
          alert('Du har ikke udfyldt felt nr.: 3'); return false
        }
        if (document.forms[0].skole.value == "")
        {
          alert('Du har ikke udfyldt feltet: Skole'); return false
        }
        if (document.forms[0].navn.value == "")
        {
          alert('Du har ikke udfyldt feltet: Navn'); return false
        }
        if (document.forms[0].email.value == "")
        {
          alert('Du har ikke udfyldt feltet: E-mail!'); return false
        }
        var index = document.forms[0].email.value.indexOf("@")
        if (index == -1)
        {
          alert('Du har ikke udfyldt feltet: E-mail korrekt!'); return false
        }
        if (index != document.forms[0].email.value.lastIndexOf("@"))
        {
          alert('Du har ikke udfyldt feltet: E-mail korrekt!'); return false
        }
        }

kan du resten - så meddelelsen her kommer frem ?
<%     IF strNavn <> "" THEN %>
Din evaluering er modtaget!<br>
<br>
<br>
Med venlig hilsen<br>
<br>
<strong>Mig</strong><br>
<br>
<br><br><br></td>
<% ELSE %>
Avatar billede jmjveb Nybegynder
08. marts 2008 - 16:44 #24
ikke nødvendigt - nu virker det - point til dig hvis du svarer
Avatar billede nielle Nybegynder
08. marts 2008 - 16:48 #25
Svar :^)
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