Hallo miteinander,
aus irgend einem Grund komme ich nicht drauf, wo mein Denkfehler sitzt. Vielleicht könnt Ihr mir helfen.
Ich habe ein Bestellformular, in das der Kunde diverse Daten eintragen kann. Wird das Formular submittet, wird die Bestellung versendet und es erscheint eine Bestätigung im gleichen Fenster. Soweit sehr unspannend.
Nun möchte ich die Möglichkeit anbieten, das ausgefüllt Formular für eine Bestellung per Fax auszudrucken. Eine leicht modifizierte Seite soll zu diesem Zweck in einem neuen Fenster angezeigt werden. Dazu verwende ich einen Button, der onClick ein Javascript aufruft. Dieses Script weist den Attributen action und target neue Werte zu (Script, das eine Druckversion der Bestellung generiert sowie ein neues Fenster als Ziel). Zuletzt wird das Formular submitted.
Nur: Trotz erfolgreicher Wertzuweisung wird das ursprüngliche Script aufgerufen, das die Bestellung per Mail versendet.
<pre>
[...]
<script type="text/javascript">
function printOrder(){
document.OrderForm.action.value = '/cgi-bin/bin/printorderform.pl';
document.OrderForm.target = '_blank';
alert('action is '+document.OrderForm.action.value+', target is '+document.OrderForm.target);
document.OrderForm.submit();
}
</script>
<h2>Your Data<img src="$path_all/img/dot_orange.gif" width="500" height="1" border="0"></h2>
<p><br></p>
<form name="OrderForm" action="/cgi-bin/bin/mailsender.pl" method="post" onsubmit="return CheckOrderForm();" target="_self">
<input type="hidden" name="action" value="order">
<input type="hidden" name="session" value="$sid">
<input type="hidden" name="order" value="$items_for_mailing">
<input type="hidden" name="sum" value="$sum_all Euro">
<table><tr><td>
[...]
#Eingabefelder für persönliche Daten
[...]
<tr><td $table_style_caption><input class="butt80" type="reset" value="reset form" border="0"></td>
<td $table_style_edit><input class="butt150" type="submit" value="send your order now" border="0"><br>
<button type="button" name="print" class="butt150" onclick="printOrder();">Just print form for fax order</button></td></tr>
</table>
</form>
</pre>
[...]
Warum werden beim Submit durch das Script printOrder() die alten Attribut-Werte des Formulars verwendet???
Es ist mir ein Rätsel.
Gruß von TomC