Hallo,
Ich werde diese Frage hier solange und so oft stellen, bis sie mir beantwortet wird ! Also bitte nicht immer aus dem forum löschen ! Danke !
Soso, na dann ;-)
Wie kann man zwei scripte in einem FORM tag verwenden ?
Das geht definitiv nicht. Es gibt nur Moeglichkeiten, einen Workaround zu schaffen.
Wenn der Button 1 gedrückt wird, das script 1.pl ausgeführt wird und Daten speichert,
wenn der Button 2 gedrückt wird, dann soll er das script 2.pl ausführen und daten löschen.
Man koennte das z.B. so loesen:
<div>
<form name="save" action="/cgi-bin/1.pl" method="post" style="display:inline">
<input type="text" style="position:absolute; top:188px; left:10px; width:160px" name="Name"><br>
<input type="text" style="position:absolute; top:188px; left:10px; width:160px" name="Firstname"><br>
<input name="Speichern" type="submit">
</form>
<form name="delete" action="/cgi-bin/2.pl" method="post" onSubmit="getInputData()" style="display:inline">
<input type="hidden" name="Name" value="">
<input type="hidden" name="Firstname" value="">
<input name="Löschen" type="submit">
</form>
</div>
Dabei gibt es zwei Formulare. Optisch erscheinen tut jedoch nur eines. Die Formulare sind mit style="display:inline" so formatiert, dass sie keine neue Zeile im Textfluss erzeugen. Optisch erscheinen die beiden Eingabefelder und nebeneinander die beiden Submit-Buttons. Wird das erste Formular ("Speichern") abgeschickt, geht alles ganz normal, d.h. 1.pl wird auf dem Server ausgefuehrt. Bei Formular 2 brauchen wir noch einen JavaScript-Trick, um an die Daten aus Formular 1 zu kommen. Dazu sind in Formular 2 zwei hidden-Felder definiert, und im <form>-Tag wird mit onSubmit eine JS-Funktion namens getInputData() aufgerufen. Diese sollte im HTML-Dateikopf notiert sein und koennte so aussehen:
<script type="text/javascript">
<!--
function getInputData() {
document.delete.Name.value = document.save.Name.value;
document.delete.Firstname.value = document.save.Firstname.value;
return true;
}
//-->
</script>
Die Funktion uebertraegt die Inhalte aus den beiden Eingabefeldern des 1. Formulars in die beiden hidden-Felder des 2. Formulars. Dies alles geschieht, bevor das 2. Formular abgeschickt wird. Beim Abschicken von Formular 2 wird also wie gewuenscht 2.pl aufgerufen, und das Script bekommt auch die erwarteten POST-Daten uebergeben. Aber eben nicht direkt aus den Eingabefeldern, sondern aus hidden-Feldern, die mittels JavaScript vor dem Absenden gefuellt wurden. So weit klar?
Und jetzt noch ein Wort zu der Schlammschlacht hier:
Kein Zweifel, es ist penetrant, wenn jemand mit Worten wie "Ich werde diese Frage hier solange und so oft stellen, bis sie mir beantwortet wird" droht. Aber andererseits erwecken hier nun mal viele Poster den Eindruck, als ob sie so ziemlich alles Fachwissen besitzen. Und von daher ist es nicht verwunderlich, wenn jemand um nichts weiter bittet, als dass ihm dieses Fachwissen auch mal konkret zu seinem Problem angeboten wird. Ueber den Ton und die Penetranz kann man streiten, sicherlich. Aber warum wird es nicht viel oefters mal damit versucht, Fragen einfach ordentlich zu beantworten? Ich finde Probleme von der Art, wie sie hier Mr.X geschildert hat, durchaus typisch und angemessen fuer dieses Forum, und sie haben verdient, dass sich die Spezialisten auch mal so weit herablassen, moegliche Loesungen so zu erklaeren, dass man damit was anfangen kann.
viele Gruesse
Stefan Muenz