Ich würde einen viel einfacheren Weg zum Drucken einschlagen. Und zwar würde ich eine Zusammenfassungseite erstellen, die angezeigt wird, bevor man auf submit klickt (wennn sich das mit Deinem Workflow verträgt).
Durch den Klick auf Submit wird dann zum Einen das Druckfenster geöffnet und nach dem Druck das Formular verschickt.
Das bewerkstelligt man am besten so, dass das Formular in einem IFrame läuft (damit man den Rest der Site nicht auf dem Ausdruck hat).
Da Du BF 1.6.0 verwendest, ist es am besten, du erstellst eine 2. Seite mit <div> Elementen und jeweils mit IDs.
Also z.B. <div id="vornameCopy">Vorname</div> und ordnest die so an wie Du es gerne im Ausdruck hättest.
Dann legst Du auf den Weiter-Button von Seite 1 eine Spezial-Aktion an, in der letztendlich die Werte von Seite 1 auf Seite 2 übertragen werden. Also in die zu druckende Zusammenfassung.
Dazu in die Eigentschaften vom "nächste Seite" Button, dann Spezial, "Rahmencode erzeugen" und im "Click"-Case dann die Divs von Seite 2 mit den Werten aus Seite 1 befüllen.
Das sieht in etwa so dann aus:
document.getElementById("vornameCopy").value = ff_getElementById("Vorname").value;
// dann weitere Felder hinzufügen...
// und schlussendlich auf die nächste Seite springen:
ff_validate_nextpage();
Du siehst, dass Du damit dann den Wert in die Felder der 2. Seiten schreibst. Also die ID von oben, die ich als Bsp. genannt habe.
Dann auf der 2. Seite, also der Zusammenfassung, noch einen Druckbutton anlegen, ähnlich wie oben beim weiter-Button vorgehen, allerdings dann das hier einfügen:
window.print();
ff_validate_submit();
Das wird dann zuerst drucken und nach dem Druck (oder Druckabbruch) das Formular verschicken.
Hoffe konnte da konzeptionell helfen, denn ich finde das ist der einfachere Weg, auch wenn man diesen ersmal erklären muss.
Wollte das gleich ausprobieren und hab nen testformular gemacht. Auf der ersten Seite nen Inputfield mit dem Namen "name" und auf der 2ten Seite nen Text/Html feld mit dem inhalt <div id="ausgvorname">Vorname</div> und hab deinen Code kopiert allerdings mit ner änderung da das zeite ha ElementByName sein müsste anstatt ID
function ff_weiter_action(element, action)
{
switch (action) {
case 'click':
document.getElementById("ausgvorname").value = ff_getElementByName("name").value;
ff_validate_nextpage();
} // switch
} // ff_weiter_action
nur steht nachm drücken auf den buttom immernoch nur "Vorname" in dem div und sonst nichts
Falls Sie neu bei Crosstec sind aber bereits einen Formulargenerator bei einem anderen Hersteller gekauft haben, dann bekommen sie von uns einen Rabatt von 25% auf unsere 1-Jahres und Pro-Mitgliedschaften
Wie Sie an den Rabatt kommen?
Schreiben Sie uns einfach eine kurze Email mit beigelegten Kaufbeleg (z.B. PayPal Quittung) an sales@crosstec.org.
Live Support Chat Opened!
Join our Discord chat here and enter the Crosstec channels to receive live support and talk directly to the team!
Wir unterstützen die Joomla Community
Crosstec unterstützt weltweit alle offiziellen Joomla! User Groups und Organisatoren von Joomla! Days die bei Joomla.org registriert sind.
Falls das auf dich zutrifft und du eines unserer Produkte brauchst, schreib uns eine kurze Email an info@crosstec.org und du bekommst eine Flatrate-Mitgliedschaft geschenkt!