Avatar billede cholm Nybegynder
13. september 2004 - 12:40 Der er 11 kommentarer og
1 løsning

Tilretning af formular - igen

Hej,

Jeg har nedenstående formular som jeg ønsker at få tilrettet. De funktioner jeg ønsker hjælp til er som følger:

1. Jeg vil gerne have et af felterne til at værre højere end de andre, da dette felt skal bruges til kommentarer. Jeg er med på hvordan jeg styrer bredden, men er lost mht. højden.

2. Jeg vil gerne have tilføjet nogle checkbokse/afkrydsningfelter. Hvad er koden til dette ?

3. Hvordan sender jeg brugerne videre til en anden siden når formularens indhold er blevet sendt ?

3. Når jeg modtager en mail med indholdet, står det blot på en lang række. Kan jeg ikke få indholdet til at stå under hinanden ?

Koden til formularen er som følger:

<%
if Request.ServerVariables("REQUEST_METHOD") = "POST" then

  Set Upload = Server.CreateObject("Persits.Upload.1")
 
  'ret brugernavn til dit brugernavn hos azero:
  Count = Upload.Save ("d:\Webfiler\test\db\")
 
  if Count>0 then
    set file1=Upload.Files("file1")
  end if
 
  navn = Upload.form("navn")
  email = Upload.form("email")

  Set JMail          = Server.CreateObject("JMail.SMTPMail")
  'REt DOMÆNE til dit domæne navn:
  JMail.ServerAddress = "post.tele.dk"
  JMail.Sender        = "post@test.dk"
  JMail.Subject      = "Måske en fil til dig"
  JMail.AddRecipient  "post@test.dk"

  JMail.Body = "En mail fra : " & navn & " og brugeren har denne email adresse : " & email
 
  if Count>0 then
    JMail.AddAttachment (file1.path)
  end if
  JMail.Execute
 
  Set JMail = Nothing
 
  if count>0 then
    Upload.DeleteFile (file1.path)
  end if
 
  Set file1=nothing
  set upload=nothing
 
  Response.Write "Mail sendt."
end if
%>
<html>
<head></head>
<body>
<form action="<%=Request.ServerVariables("SCRIPT_NAME")%>" method="POST" ENCTYPE="multipart/form-data">
<br>Navn: <input type="text" name="navn" size="20">
<br>Fra (email): <input type="text" name="email" size="20">
<br>Fil: <input type="file" name="file1" size="20">
<br><input type="submit" name="send" value="send">
</form>
</body>
</html>


På forhånd tak for hjælp til ét eller flere af ovenstående punkter.

/cholm
Avatar billede fennec Nybegynder
13. september 2004 - 12:51 #1
1. Brug et textarea i stedet.
<textarea name="enNote" cols="40" rows="3"></textarea>

2. <input type="checkbox" name="enCheckBox">
Avatar billede fennec Nybegynder
13. september 2004 - 12:57 #2
3.
Response.Write "Mail sendt."
response.redirect("EnAndenSide.asp")

response.redirect medfører at scriptet bliver afbrudt og siden skifter. Du vil derfor ikke kunne se "Mail sendt." teksten, da siden skifter.

4.
tilføj chr(13) (enter/linjeskift) til teksten
JMail.Body = "En mail fra : " & navn & chr(13)& "og brugeren har denne email adresse : " & email

Du kan også sende det som HTML, også bruge HTML koder i teksten.
Avatar billede cholm Nybegynder
13. september 2004 - 13:03 #3
Jeg har rettet koden til at felterne nu ligger i tabeller. Kommentarfeltet ser således ud:

<tr>
    <td width="15%" height="22"><font face="Verdana" size="2">Evt. kommentarer:</font></td>
    <td width="85%" height="22"><font face="Verdana"> <input type="text" name="comment" size="20"></font></td>
  </tr>

Hvor indsætter jeg det textarea du foreslår ?

I øvrigt tak for hjælpen indtil nu :-)

/cholm
Avatar billede cholm Nybegynder
13. september 2004 - 13:17 #4
Så er der styr på pkt. 3 og 4.

/cholm
Avatar billede fennec Nybegynder
13. september 2004 - 13:34 #5
<tr>
    <td width="15%" height="22"><font face="Verdana" size="2">Evt. kommentarer:</font></td>
    <td width="85%" height="22"><font face="Verdana"> <textarea name="comment" cols="40" rows="3"></textarea></font></td>
</tr>
Avatar billede cholm Nybegynder
13. september 2004 - 16:10 #6
Så fik jeg også de to første punkter til at fungere.

Mht. checkboxen, så skriver den "ON" når den er vinget af men ikke noget når den ikke er vinget af. Skal der så ikke stå "off" ?

Kan man ikke lave det således, at man selv definerer hvad der skal stå når den er vinget af ?

Kan man i øvrigt indbygge i formularen, at alle data også skal sendes i kopi til den mailadresse brugeren har indtastet ?

Mange tak for hjælpen - Hvis du lige kommer med et svar skal du få dine velfortjente points.

/cholm
Avatar billede fennec Nybegynder
13. september 2004 - 16:23 #7
Du kan godt ændre værdien i checkboxen.
<input type="checkbox" name="enCheckBox" value="EnAndenVærdi">

Og nej værdien er desværre ikke OFF hvis den ikke er valgt. Derfor kan det heller ikke betale sig at ændre værdien i boxen, da du bare tjekke på om den er tom/inderholder noget.

if request.Form(enCheckBox) <> "" then
  'checked
else
  'not checked
end if

Der er dog tilfælde hvor det kan bruges at ændre værdien. Hvis du f.eks har flere checkboxe med samme navn, får du returneret en kommasepareret liste af dem der er afkrydset:

<input type="checkbox" name="CheckBoxArray" value="1">
<input type="checkbox" name="CheckBoxArray" value="2">
<input type="checkbox" name="CheckBoxArray" value="3">
<input type="checkbox" name="CheckBoxArray" value="4">

kopi til bruger:
JMail.AddRecipient  "post@test.dk"
if request.form("email") <> "" then
  JMail.AddRecipient request.form("email")
end if

Men der ville man sikkert lave et bedre tjek, end at der bare skal stå noget. Der findes et par script her på E, som validere en email for @ . og andre ting.
Avatar billede cholm Nybegynder
13. september 2004 - 16:26 #8
Endnu engang mange tak for hjælpen.

/cholm
Avatar billede cholm Nybegynder
13. september 2004 - 16:28 #9
Kan man lave det således at den ikke medtager navnet på checkboxen såfremt den ikke er vinget af. Hvis jeg nu har 10 boxe er det jo lidt træls at navnene på dem alle kommer med, når der kun er vinget én af.

/cholm
Avatar billede fennec Nybegynder
13. september 2004 - 16:36 #10
Det forstår jeg ikke helt.... Navnet på checkboxen skulle helst ikke blive overført. Kun værdien.
Avatar billede cholm Nybegynder
13. september 2004 - 16:46 #11
Det er vist mig der ikke forklarer mig godt nok...

Jeg mener det navn jeg angiver i JMail.Body. Den tekst som jeg har angivet at der skal stå i den mail jeg modtager. Er den vinget ag står der "angivet tekst: ON" og er den ikke vinget af står der "angivet tekst:"

jeg ville gerne have det sådan at den "angivne" tekst slet ikke kommer med såfremt boxen ikke er vinget af.

Håber du forstår :-)

/cholm
Avatar billede fennec Nybegynder
13. september 2004 - 18:23 #12
Det er derfor det skal i en if sætning.

if request.Form(enCheckBox) <> "" then
  JMail.Body = "angivet tekst: Et Eller Andet"
else
  'Denne kan undværes da der ikke sker noget
  JMail.Body = ""
end if

eller også skal værdien i checkboxen være:
<input type="checkbox" name="enCheckBox" value="angivet tekst: Et Eller Andet">
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