html/Javascript - Formular: Test auf Vollständigkeit und Versand je nach Auswahl

tim-_-m

Grünschnabel
kann mir jemand sagen was ich falsch mache?

Wichtig ist mir eben der Versand an unterschiedliche Adressen je nach Auswahl im drop-down-Menü.

Code:
<html>
<head>
 <title>Formular</title>
 <meta http-equiv="expires" content="0">

<script type="text/javascript">
function go() {
 res = true;
 if(document.NewRequest.name.value == ""){res = false;}
 if(document.NewRequest.vorname.value == ""){res = false;}
 if(document.NewRequest.email.value == ""){res = false;}

 if(res == false){
  alert("Bitte Formular vollständig ausfüllen!");
  return false;
 }

 switch(document.NewRequest.auswahl.value) {
  case "1" : {
	document.NewRequest.action = "mailto:don_timm@gmx.de"; alert("das bin ich"); return true;
  } case "2" : {
	document.NewRequest.action = "mailto:bloed@fug.de"; return true;
  } case "3" : {
	document.NewRequest.action = "mailto:schwach@sinn.de"; return true;
  } default
	alert("Bitte, wählen Sie!");
	return false;
}
</script>
</head>

<body>
<center>
        <h2>Testformular:</h2>
</center>

<TABLE cellpadding="5" width="800" height="20" cellspacing="0" border="0">
	<TR VALIGN="TOP">
  	<TD WIDTH="33" HEIGHT="100%">
		</TD>
	<TD WIDTH=800 height="100%" VALIGN=top align=left>

<form name="NewRequest" onSubmit="return go();">
<TABLE cellpadding="5" width="800" height="20" cellspacing="0" border="0">

       <TR>
        <TD width="80" align=left><B>Name:</B></TD>
        <TD colspan="2" align=left>
        		<input name="name" value="" size="20">
        </TD>
       </TR>
       <TR>
        <TD width="80" align=left><B>Vorname:</B></TD>
        <TD colspan="2" align=left>

        		<input name="vorname" value="" size="20">
        </TD>
       </TR>
             <TR>
        <TD width="80" align=left><B>Auswahl:</B></TD>
        <TD colspan="5" align=left>
<select name="auswahl" size="1"><option value="- Select -">- Select -
<option value="1">1
<option value="2">2
<option value="3">3
</select>       </TR>
        <TR>
        <TD width="80" align=left><B>E-Mail des Bearbeiters:</B></TD>

        <TD colspan="3" align=left>
        		<input name="email" value="" size="33">
        </TD>
       	<TD colspan="2" align=left>
       		Hier bitte  E-Mail Adresse des momentan Ausf&uuml;llenden eintragen
       	</td>
       </TR>
	</TR>
       </TABLE>
	</TD></TR>
	<TR>

    <TD colspan="2" align="left">
<input type=reset value="Abbrechen"> &nbsp; &nbsp; &nbsp;
<input type=submit name="submit" value="Beantragen">
    </TD>
   </TR>

</form>

</TABLE>

</body>
</html>

Anscheinend stelle ich mich sehr dumm an....
Kann mir bitte trotzdem jemand helfen, ich komme echt nicht weiter.
 
Das kann meines Erachtens auch nicht funktionieren. Du benötigst ein CGI -Script.
Ein Serverseitiges Script. Javascript ist aber keine serverseitige Scriptsprache.
Sie wird im Browser des Anwendersausgeführt. Daher kann dein Versand nicht klappen.

Du hast jetzt einfach einen neuen Thread aufgemacht, anstatt den Alten
weiter zu verwenden.
(!)

Ich empfehle dir also ein php-Script......Das habe ich dir eigentlich ansatzweise auch schon
gepostet.

Du brauchst einen Formmailer:

Code:
if($_POST['mail_2'])
   $to .= ","."Kelly <rwoesner@der-reporter.de>";
if($_POST['mail_3'])
   $to .= ","."Joe <woesner@balticum.de>";

if(($_POST['mail_2']== '') AND ($_POST['mail_3'] == '')){

header("location:fehler.html");
exit;
}

mail("$to",$subject,$body, $more);

header("location: danke.html");

}
else {

header("location: fehler.html");

}

?>

den nennst du z.B. mail.php und übergibst dein Formular via POST an den mailer.....

:p
Viel SPASS
Soa
 
Sorry, hier noch einmal der formmailer

<?
$MailToAddress = "YOUR@ADDRESS.GOES.HERE";
$MailSubject = "YOUR SUBJECT HERE";
if (!$MailFromAddress) {
$MailFromAddress = "SENDERS@ADDRESS.GOES.HERE";
}
$Header = "";
$Footer = "";
?>
<html>
<body bgcolor="#FFFFFF">
<font face="Arial"><center>
The following information has been delivered:
</center>

<?
if (!is_array($HTTP_POST_VARS))
return;
reset($HTTP_POST_VARS);
while(list($key, $val) = each($HTTP_POST_VARS)) {
$GLOBALS[$key] = $val;
$val=stripslashes($val);
echo "<b>$key</b> = $val<br>";
$Message .= "$key = $val\n";
}

if ($Header) {
$Message = $Header."\n\n".$Message;
}

if ($Footer) {
$Message .= "\n\n".$Footer;
}

mail( "$MailToAddress", "$MailSubject", "$Message", "From: $MailFromAddress");
?>
<br><br>
<b>Thank You!</b>
<br><br>
<a href="<? echo "$HTTP_REFERER"; ?>">Return To The Mail Form</a><br><br>
<a href="/">Home Page</a><br><br>
</body>
</html>
 
Dankeschön!

Du meinst also, dass sowas mit JavaScript überhaupt nicht möglich ist?

Mit php hab ich noch nie was gemacht.
Dazu brauch ich dann einen Server der MySQL unterstützt...
Mal schaun wie das klappt.

Find ich auf jeden Fall toll, dass einem hier so schnell geholfen wird. :p
 
Hi,

zuverlässiger ist das Verschicken mit PHP auf jeden Fall, denn nicht jeder Browser ermöglicht
das Versenden von Mails mit mailto im FORM-Tag. Aber prinzipiell sollte auch eine Variante mit
JavaScript möglich sein.
Code:
function go() {
  res = true;
  if(document.NewRequest.name.value == ""){res = false;}
  if(document.NewRequest.vorname.value == ""){res = false;}
  if(document.NewRequest.email.value == ""){res = false;}

  if(!res){
    alert("Bitte Formular vollständig ausfüllen!");
    return false;
  }

  switch(document.NewRequest.auswahl[document.NewRequest.auswahl.selectedIndex].value){
    case "1" : document.NewRequest.action = "mailto:don_timm@gmx.de";
               return true;
    case "2" : document.NewRequest.action = "mailto:bloed@fug.de";
               return true;
    case "3" : document.NewRequest.action = "mailto:schwach@sinn.de";
               return true;
    default  : alert("Bitte, wählen Sie!");
               return false;
  }
}
Das FORM-Tag sollte jedoch noch das enctype- und method-Attribut beinhalten:
HTML:
<form name="NewRequest" onSubmit="return go();" method="post" enctype="text/plain">
Ciao
Quaese
 
ok, cool...
jetzt das mit JavaScript schonmal!
also zumindest beim mir daheim im Firefox

Auf Dauer ist es vielleicht doch besser wenn ich mich mit PHP anfreunde. :(

Aber soweit klappts jetzt schonmal. ;-)

Vielen Dank :-) :-) :-)
 
nochma ne frage:
wie kann ich denn der Mail, die durch die action="mailto:..." erzeugt wird einen Text anhängen?

ich habe bislang nur die Möglichkeit mit einem unsichtbaren Formularfeld gefunden, also z.B.:

Code:
 <input type="hidden" name="eintrag" value="zusätzlicher Text ">

dann erscheint in der Mail: 'eintrag=zusätzlicher Text'
Das ist natürlich unschön. Gibt es also eine Variante wie nur der 'zusätzliche Text' in der Mail erscheint?
 

Neue Beiträge

Zurück