Avatar billede diddi Nybegynder
23. juli 2002 - 17:16 Der er 27 kommentarer og
2 løsninger

Hvordan afvikles et JavaScript i en ASP sendmail?!

Hejsa..
Jeg skal fra en form sende en mail via ASP..
et JavaScript udskriver oplysninger, som skal sendes med mailen.. :
<SCRIPT LANGUAGE="JavaScript">
parent.vareTekst(document,"tekstIndhold");
</SCRIPT>
Hvordan gøres det?!

- Jacob
Avatar billede a1a1 Novice
23. juli 2002 - 17:44 #1
ja, det kan du ikke

javascripten kører jo EFTER at asp en er færdig

på siden før email kan du istedet ligge dine informationer i et hidden form felt og så submite formen og på email siden hente det igen (og sende det med i mailen)
Avatar billede diddi Nybegynder
23. juli 2002 - 17:46 #2
hmm.. tjaehh.. så kan man vel også gøre det i PHP?!
Avatar billede coolcoder Nybegynder
23. juli 2002 - 18:31 #3
Du blander to typer sprog sammen.

ASP og PHP er server-side script, som afvikles på serveren, inden siden sendes ud til klientens browser.

JavaScript er client-side script, der kan afvikles af browseren, når brugeren laver forskellige ting på din side (mouseover osv.)

Hvis du vil udfylde en form og sende den som HTML-dokument via en mail. Kan du sende JavaScriptet med og det vil så blive kørt fx når brugeren åbner HTML-filen.

Hvis du vil have JavaScript til at generere teksten der skal sendes med mailen, kan du smide den tekst i en hidden-felt og submitte formen derefter.

/coolcoder
Avatar billede diddi Nybegynder
23. juli 2002 - 18:35 #4
ja, det forstår jeg godt... men hvordan skal feltet se ud?
Avatar billede diddi Nybegynder
23. juli 2002 - 18:35 #5
eks.

<INPUT TYPE="hidden" VALUE="<SCRIPT LANGUAGE="JavaScript">
parent.vareTekst(document,"tekstIndhold");
</SCRIPT>" NAME="titelIndhold">

Det virker da ikk´ ??

- Jacob
Avatar billede a1a1 Novice
23. juli 2002 - 18:42 #6
hvis du har denne form / side
<form name="formen" action="side2.asp" method="post">
<INPUT TYPE="hidden" VALUE="" NAME="titelIndhold">
<input type="submit" value="send email" >
</form>
<SCRIPT LANGUAGE="JavaScript">
document.formen.titelIndhold.value = parent.vareTekst(document,"tekstIndhold");
</SCRIPT>

og så på side 2
tekst = Request.Form("titelIndhold")
så har du indholdet :)
Avatar billede coolcoder Nybegynder
23. juli 2002 - 18:45 #7
nej. Du skal bruge noget i stil med:

<html>
<head>
<script language="javascript">
function doSubmit() {
  document.mailform.mailtxt.value = parent.vareTekst(document,"tekstIndhold");
  document.mailform.submit();
}
</script>
</head>
<body>
<form name=mailform method=post>
<input type="hidden" name="mailtxt">

<input type=button value="Send" onclick="doSubmit();">
</form>
</body>
</html>
Avatar billede a1a1 Novice
23. juli 2002 - 18:52 #8
sker der ikke det samme?
Avatar billede coolcoder Nybegynder
23. juli 2002 - 19:06 #9
a1 >> som ved din?? Nej. Du glemmer at smide data i hidden-feltet når der submittes :)
Avatar billede diddi Nybegynder
23. juli 2002 - 23:32 #10
Jeg tror også at du har fat i det rigtige coolcoder...
Men den melder fejl, idet formen sendes..?!
Avatar billede diddi Nybegynder
23. juli 2002 - 23:35 #11
måske er det bare mig der ikke fatter det, men den skriver:
fejl i linie 5:
'dokument.mailform' er ikke et objekt
Avatar billede a1a1 Novice
24. juli 2002 - 00:28 #12
øjhh koldkode..

<SCRIPT LANGUAGE="JavaScript">
document.formen.titelIndhold.value = parent.vareTekst(document,"tekstIndhold");
</SCRIPT>
burde da putte værdien ind når det er blevet læst ind..?????
(eller kan du forklare hvorfor det IKKE kommer ind i hidden feltet?)
Avatar billede a1a1 Novice
24. juli 2002 - 00:30 #13
din form skal have det rigtige navn...
her er det "formen"
<form name="formen" action="side2.asp" method="post">

hvis du har kaldt din form for "mailform" skal du ændre javaskriftet til
<SCRIPT LANGUAGE="JavaScript">
document.mailform.titelIndhold.value = parent.vareTekst(document,"tekstIndhold");
</SCRIPT>
;)
Avatar billede diddi Nybegynder
24. juli 2002 - 10:54 #14
tak for svare a1...
kan det kun kaldes frem ved hjælp af:
tekst = Request.Form("titelIndhold")
ell. kan jeg lave et hidden felt?

- Jacob
Avatar billede coolcoder Nybegynder
24. juli 2002 - 11:09 #15
a1 >> hvis nu mailen dannes ud fra indtastninger i andre felter (fx navn), så er det jo vigtigt at det er du sidst indtastede data, der kommer med. Derfor vil jeg gerne have functionen til at køre lige inden formen submittes

diddi >> sorry jeg først er tilbage nu (var ikke hjemme igår). Det er som rigtigt hvad a1 siger mht til navngivning.

..og du har ikke så meget at bruge et hiddenfelt til, når formen er blevet submittet. Du skal jo ha' sendt din mail, og den bliver sendt inden hiddenfeltet er tilgængeligt.

Mailen skal nemlig sendes serverside - dvs fra serveren, der laver dine sider. Så hiddenfeltet skal du kun have, hvis du påtænker at genbruge mailteksten senere.
Avatar billede diddi Nybegynder
24. juli 2002 - 11:18 #16
okay... nu er jeg en smule i tvivl om hvordan det hele skal sættes op!!!
Her ses min form
------------------------------------------------------------------------
<form name="mailform" action="mail.php" method="get" onsubmit="return confirm('Klik ok for at sende bestillingen!');">
<INPUT TYPE="hidden" NAME="titelindhold">
<P>&nbsp;
  <center>
Navn
<INPUT TYPE="text" SIZE="18" NAME="navn">
&nbsp;
  </center>
<P>
  <center>
Efternavn
<INPUT TYPE="text" SIZE="18" NAME="efternavn">
&nbsp;
  </center>
<P>
  <center>
Evt. telefon.
<INPUT TYPE="text" SIZE="18" NAME="telefon">
&nbsp;</center>
<P><center>
E-mail adresse
<INPUT TYPE="text" SIZE="18" NAME="email">
&nbsp;
  </center>
<P align="center">
  <center>
Andet
<TEXTAREA WRAP="physical" ROWS="4" COLS="24" NAME="S1"></TEXTAREA>
  </center>
<P align="center">
<input type="submit" value="Send" onclick="doSubmit();"> <INPUT TYPE="reset" VALUE="Slet alt">
------------------------------------------------------------------------

Skal script være mellem head sektionerne, eller er det ligemeget... ?!
funktionen doSubmit, den skal da også være der ikk?

- Jacob
Avatar billede coolcoder Nybegynder
24. juli 2002 - 11:29 #17
det er korrekt. JavaScript bør altid placeres i headeren. I praksis er det dog ligemeget, men for god ordens skyld, så saml det der - så er det nemmere at læse koden senere.

Du skal desuden have fjernet din "onsubmit" fra formen og lagt den op i doSubmit-functionen. Fx således:

<script language="javascript">
function doSubmit() {
  if(confirm('Klik ok for at sende bestillingen!')) {
    document.mailform.mailtxt.value = parent.vareTekst(document,"tekstIndhold");
    document.mailform.submit();
  }
}
</script>
Avatar billede diddi Nybegynder
24. juli 2002 - 11:33 #18
ja, det var egentligt meget smart...
okay... nu kommer så nok mit sidste spørgsmål:
Jeg skal jo have teksten sendt med...
gøres det bare sådan:

$mailtext

ell. andre måder??

- Jacob
Avatar billede coolcoder Nybegynder
24. juli 2002 - 11:48 #19
jeg er ikke lige så skide stærk i PHP - men i min øresnegl hører jeg lige at kommer an på din serveropsætning.

Prøv evt. at spørge i PHP-kategorien.

Men i ASP hedder det i hvert fald

<%
  request.querystring("mailtext")
%>
Avatar billede a1a1 Novice
24. juli 2002 - 11:51 #20
eller nok nærmere
<%
Request.Form("mailtext")
%>

da det jo post'es til siden....:)
Avatar billede coolcoder Nybegynder
24. juli 2002 - 11:58 #21
a1 >> som du måske kan se i diddi's kode, har han valgt at get'e formen :)

diddi >> ..men følg de tidligere råd, og post din form. Det gøres således:

<form method="post" .... >
Avatar billede diddi Nybegynder
25. juli 2002 - 00:49 #22
okay...
jeg synes egentligt at I begge fortjener points...
kan I dele?!,
Måske 60/40 ??

- Jacob
Avatar billede diddi Nybegynder
25. juli 2002 - 00:50 #23
MANGE TAK FOR HJÆLPEN!!!
Avatar billede coolcoder Nybegynder
25. juli 2002 - 00:53 #24
du kan klikke på avanceret og fordele som du lyster :)
Avatar billede diddi Nybegynder
25. juli 2002 - 10:02 #25
sådan... håber at I finder det rimeligt!!?

- Jacob
Avatar billede diddi Nybegynder
25. juli 2002 - 10:10 #26
den skriver desværre stadig at:

document.mailform.mailtxt.value = parent.vareTekst

ikke er et objekt!!!
Hmm... det er underligt...!!!
Avatar billede diddi Nybegynder
25. juli 2002 - 10:10 #27
Da det er dette der fremkalder selve varerne...

<SCRIPT LANGUAGE="JavaScript">
parent.vareTekst(document,"tekstIndhold");
</SCRIPT>
Avatar billede coolcoder Nybegynder
25. juli 2002 - 10:14 #28
prøv:

document.mailform.mailtxt.value = parent.vareTekst(document,"tekstIndhold");
Avatar billede diddi Nybegynder
25. juli 2002 - 14:29 #29
ja, det er den jeg bruger:


<script language="javascript">
function doSubmit() {
  if(confirm('Klik ok for at sende bestillingen!')) {
    document.mailform.mailtxt.value = parent.vareTekst(document,"tekstIndhold");
    document.mailform.submit();
  }
}
</script>
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