@Markus Thomas: Frage wegen 2 Formulare
Alexander
- javascript
Hi Markus!
Ich hatte unten Deinen Beitrag über das Abschicken von 2 Formularen mit einem klick! Vielleicht kann das Script mir bei einem Problem helfen, und zwar möchte ich 2 Skripte auf einmal ausführen. Ich schaffe es einfach nicht, beide in einem zu vereinen. Deshalb wollte ich jetzt erstmal Deine Javascript Methode versuchen.
Ich hab das mal wie folgt ausprobiert:
<script language="JavaScript">
<!--
function addForms()
{
// für jedes Feld einzeln oder per for-Schleife
document.Form1.Name.value = document.Form2.Name.value;
document.Form1.email.value = document.Form2.email.value;
....
//zum Schluß Form1 senden
document.Form1.submit();
}
//-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="/cgi-bin/mailto.cgi">
<input type="hidden" name="Name">
<input type="hidden" name="email">
</form>
<form name="form2" method="post" action="/cgi-bin/csvformplus.pl" onSubmit="addForms()">
<input type="submit" value="Abschicken">
<input type="text" name="Name">
<input type="text" name="email">
</form>
Aber so funktioniert das bei mir nicht, es wird nur form2 abgeschickt. Oder hab ich da was falsch verstanden?
Also ich würde einfach ein 2. Fomular schreiben, nur mit hidden Fields, nur in der action halt das andere Script angeben.
Vielleicht weißt Du ja, was ich falsch gemacht habe.(wird das 1. auch ausgeführt, wenn das 2. nicht richtig läuft?)
Gruß
Alex
Hallo!
[...]
document.Form1.Name.value = document.Form2.Name.value;
document.Form1.email.value = document.Form2.email.value;
[...]
<form name="form1" method="post" action="/cgi-bin/mailto.cgi">
[...]
<form name="form2" method="post" action="/cgi-bin/csvformplus.pl" onSubmit="addForms()">
[...]
Aber so funktioniert das bei mir nicht, es wird nur form2 abgeschickt. Oder hab ich da was falsch verstanden?
Also zu allererst: JavaScript unterscheidet Groß- und Kleinschreibung, also entweder form1 oder Form1.
Das Script funktioniert so, daß beide Formulare in eines gepackt werden und dieses eine wird dann abgeschickt. Also wird nur eine action ausgeführt. Folglich kannst Du die beiden Formulare auch gleich in eines stecken. 2 Formulare gleichzeitig abzuschicken mit 2 verschiedenen action="" ist IMO nicht möglich, da beim abschicken des 1.Formulars bereits eine action erfolgt und folglich nicht mehr zum Dokument zurückgekehrt wird, um das 2. auch noch auszuführen.
Die Lösung für Dein Problem liegt in der Vereinigung von mailto.cgi und csvformplus.pl. Du mußt diese beiden Skripte zusammenführen, die Formularfelder auswerten und die jeweiligen Felder den entsprechenden Teilen des Scriptes zuführen. Wenn Du damit Probleme haben solltest, schreib doch einfach Dein Problem wieder.
Gruß Markus
Hi!
Erstmal Danke für Deine Hilfe.
Ich hab wieder verschiedene Sachen probiert, auf die Idee mit dem subprogramm war ich auch gekommen, hab aber nur das Sendmail Programm so eingefügt. Als Er4gebnis hatte ich dann eine leere (ganz weiß) Seite, ohne Fehlermeldung, ohne alles, es wurde keine Aktion ausgeführt. KOmisch, oder? Das hatte ich bis jetzt noch nie, ich kenne zwar 1000 verschiedene Fehler, aber sowas? Jedenfalls habe ich das mit dem Subprogramm aucgh mal mit dem DB Teil, genau wie Du gesagt hast geacht, hat nichts verändert, immer noch leere Seite. unter http://www.autotuning-shop.com/skript.htm kannst Du dir mal die letzte Version angucken. Wie gesagt, wenn ich das kpl. Mailscript voranstelle, wird die mail gesendet, sonst passiert nichts. Bei der DB vorne genau anders herum. Das DB Script ist so vollständig, wie es auch funktioniert, das mailscript habe ich etwas gekürzt(perl-Befehl und am Ende die location, returnhtml auch weg).
Das hat garantiert was damit zu tun, dass die Werte aus den Variablen doppelt ausgelesen werden, oder? Nur muß ich meine Variablen für die Mail alle speziell ausgeben, da ich die einzelnden Werte ja an bestimmter Stelle in der mail ausgeben will. Beim DBscript geht das alles viel eleganter, da wird erst in der ersten Zeile der csv-Datei die Überschriften eingelesen und dem entsprechend die Werte in eine neue Zeile eingetragen. Es ist ganz egal, wieviel Variable das sind, das richtet sich nach der Datendatei. Da liegt bestimmt das, oder eins der Probleme. Müßte man evtl im ersten Skript nicht einfach was schließen?
Aber was war das den mit dem html-header, den jedes Script zurückschickt? Deshalb hab ich das mit return html einfach rausgenommen, reicht ja wenn der Befehl im DB Script schon steht. Aber warum funktioniert denn der Rest des Skriptes nicht für sich alleine???
Danke Nochmal für eure Hilfe!
Gruß
Alex