Wenn der Benutzer auf dem Kurzformular auf „Senden“ klickt, wird er auf die Seite des Langformulars weitergeleitet, sodass dieser Teil einwandfrei funktioniert. Der Teil, der mir Anfälle gibt, ist, dass ich die in die Kurzformularfelder Vorname, Nachname, E-Mail-Adresse und Telefon eingegebenen Werte an die entsprechenden Felder im Langformular übergeben muss.
Wie mache ich das?
So leite ich das Kurzformular zum Langformular um (ich habe es dem Abschnitt Zusätzliche Einstellungen für das Kurzformular hinzugefügt):
Hack, hack, hackety, hack, hack, hack… Ohne vorzuschlagen “keinen Formularersteller verwenden” Ich glaube nicht, dass es eine elegante Lösung gibt – Sie können die andere vorgeschlagene PHP-Methode nicht verwenden, ohne das Plugin selbst zu ändern (und das ist eine Dose mit Würmern). Ich werde eine Javascript-Lösung vorschlagen, aber es gibt einige Vorbehalte (unten):
jQuery(document).ready(function($){
$('#quick-quote form:first').submit(function(){
var foo = {};
$(this).find('input[type=text], select').each(function(){
foo[$(this).attr('name')] = $(this).val();
});
document.cookie="formData="+JSON.stringify(foo);
});
var ff = $('#container form:first');
if(ff.length){
var data = $.parseJSON(
document.cookie.match('(^|;) ?formData=([^;]*)(;|$)')[2]
);
if(data){
for(var name in data){
ff.find('input[name="+name+"], select[name="+name+"]').val(data[name]);
}
}
}
});
Was dies im Wesentlichen tun wird, ist: Speichern Sie bei der Übermittlung Ihre Miniformularoptionen in a cookie. Beim Laden der Seite sucht es dann im Hauptteil der Seite nach einem Formular und wendet alle gespeicherten Cookie-Daten an.
Anmerkungen
Die jQuery-Selektoren sind absichtlich mehrdeutig, um zukünftige Änderungen in Ihrem Admin-Panel/Plug-in zu vermeiden, die wahrscheinlich mit den Formular-IDs in Konflikt geraten (wodurch das Skript beschädigt wird).
Ich mache mir keine Gedanken über die Paarung von Feld-/Optionsnamen – zum Beispiel ist das Auswahlfeld in Ihrem Miniformular benannt insurance-type das passende Feld im Hauptformular wird jedoch benannt ins-type – Sie müssen sicherstellen, dass sie den gleichen Namen haben.
Dies gilt auch für Auswahlfeldwerte – wenn es keinen übereinstimmenden Wert gibt, wird er ignoriert (z. B. haben einige Ihrer Werte im Hauptformular » » Zeichen voran (und stimmen daher nicht überein).
Sie können dieses Skript überall in Ihrer Vorlage (auf allen Seiten) hinzufügen, solange jQuery zuerst geladen wird – was bereits in Ihrer Vorlage verwendet wird.
– Abgesandter
18. März 2013 um 11:52 Uhr
@Cynthia Cool – es ist klobig, aber solange es richtig funktioniert … 🙂
– Abgesandter
18. März 2013 um 14:01 Uhr
Ich poste routinemäßig Lösungen für Probleme mit dem Kontaktformular 7 auf meiner Website – kann ich das posten? Viele Menschen haben nach einer Möglichkeit gesucht, dies zu tun.
– Cynthia
18. März 2013 um 14:06 Uhr
Versuche dies.
Setzen Sie die Aktion unseres ersten Formulars auf eine PHP-Datei namens xyz.php
Die Datei xyz.php erstellt ein neues Formular für Sie, das in diesem Fall Ihr zweites Formular (das große) ist. Legen Sie die Aktion des Formulars nach Bedarf fest. der Code Ihrer xyz.php sieht ungefähr so aus.
wobei die Eingabefelder des ersten Formulars bereits mit den Angaben des Benutzers im ersten Formular gefüllt sind.
Sie können das erste Formular selbst erstellen und das Kontaktformular das zweite Formular erstellen lassen, indem Sie die Standardwerte mit der oben beschriebenen Methode angeben.
Hoffe das hilft!
Wie funktioniert das mit dem Contact Form 7 Plugin für WordPress?
– Cynthia
18. März 2013 um 11:24 Uhr
13873000cookie-checkWie übergebe ich Werte von einem Contact Form 7-Formular an ein anderes in WordPress?yes