2013-03-14 6 views
7

Ich habe eine Website, die 2 Formen hat - eine kurze Form und eine lange Form. Wenn Sie http://dforbesinsuranceagency.com betrachten, sehen Sie die Kurzform neben dem Masthead Foto. Das lange Formular ist um http://dforbesinsuranceagency.com/request-free-insurance-quotes/Wie übergibt man in Wordpress Werte von einem Formular Kontaktformular 7 an ein anderes?

Wenn der Benutzer Submit auf das kurze Formular drückt, wird es auf die lange Formularseite umgeleitet, so dass Teil gut funktioniert. Der Teil, der mir passt, ist, dass ich die Werte, die in die Kurzformularfelder Vorname, Nachname, E-Mail-Adresse und Telefon eingegeben wurden, an ihre entsprechenden Felder im Langformular übergeben muss.

Wie mache ich das?

Dies ist, wie ich das kurze Formular auf der langen Form bin Umleitung (ich es dem Abschnitt Weitere Einstellungen für die Kurzform hinzugefügt):

on_sent_ok: "location = 'http://dforbesinsuranceagency.com//request-free-insurance-quotes';" 

Jede Hilfe würde geschätzt.

Antwort

7

Hack, hack, hackety, Hack Hack Hack ... Ohne darauf hindeutet „kein Formular-Builder verwenden“ Ich glaube nicht, dass es eine elegante Lösung ist - man kann nicht die andere PHP-Methode vorgeschlagen verwenden, ohne Ändern des Plugins selbst (und das ist eine Dose Würmer). Ich werde eine Javascript-Lösung vorschlagen, aber es gibt einige Einschränkungen (siehe 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 wird dies im Wesentlichen tun ist: auf Vorlage, speichern Sie Ihre Mini-Form-Optionen in einem cookie. Beim Laden der Seite sucht es nach einem Formular im Hauptteil der Seite und wendet alle gespeicherten Cookie-Daten an.

Hinweise

  • Die jQuery-Selektoren sind absichtlich mehrdeutig alle zukünftigen Änderungen in Ihrem Admin-Panel/Plugin zu vermeiden, die mit der Form-IDs wahrscheinlich Schraube werden (also das Skript zu brechen).
  • Ich bin nicht faffing über Paarung Feld/Option Namen - zum Beispiel die Auswahl in Ihrem Mini-Formular heißt insurance-type aber die passende Box in der Hauptform heißt ins-type - Sie müssen sicherstellen, dass sie von der gleicher Name.
  • Dies gilt auch für ausgewählte Box-Werte - wenn kein passender Wert vorhanden ist, wird er ignoriert (z. B.Einige Ihrer Werte im Hauptformular haben » » Zeichen vor (und stimmen also nicht überein).
+0

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. – Emissary

+0

Das hat perfekt funktioniert! Vielen Dank!!!! – Cynthia

+0

@Cynthia Cool - es ist klobig, aber solange es richtig funktioniert ... :) – Emissary

2

versuchen Sie dies.

stellen Sie die Wirkung unserer ersten Form in eine PHP-Datei xyz.php

namens
<form method="post" action="xyz.php"> 
    <input type="text" name="name"> 
    <input type="text" name="email_address"> 
    <input type="submit" value="Go To Step 2"> 
</form> 

die Datei xyz.php wird für Sie ein neues Formular erstellen, die in diesem Fall Ihre zweite Form ist (der Große). Legen Sie die Aktion des Formulars wie erforderlich fest. Der Code Ihrer xyz.php wird in etwa so aussehen.

<form method="post" action="form3.php"> 
    <input type="text" name="name" value="<?php echo $_POST['name']; ?>"> 
    <input type="text" name="email_address" value="<?php echo $_POST['email_address']; ?>"> 
    <input type="radio" group="membership_type" value="Free"> 

    <input type="radio" group="membership_type" value="Normal"> 

    <input type="radio" group="membership_type" value="Deluxe"> 

    <input type="checkbox" name="terms_and_conditions"> 
    <input type="submit" value="Go To Step 3"> 
</form> 

wobei die Eingabefelder des ersten Formulars bereits mit den Angaben des Benutzers in der ersten Form gefüllt werden.

Sie können das erste Formular selbst erstellen und das Kontaktformular erstellen das zweite Formular für Sie die Standardwerte mit der obigen Methode bereitstellen.

Hoffe, das hilft!

+4

Wie funktioniert das mit dem Contact Form 7 Plugin für WordPress? – Cynthia

Verwandte Themen