2013-03-14 8 views
7

Mam stronę, która ma 2 formularze - krótki formularz i długą formę. Jeśli spojrzysz na numer http://dforbesinsuranceagency.com, zobaczysz krótki formularz obok zdjęcia mastheada. Długa forma jest pod numerem http://dforbesinsuranceagency.com/request-free-insurance-quotes/Jak przekazywać wartości z jednego formularza formularza kontaktowego 7 do drugiego w Wordpressie?

Gdy użytkownik kliknie przycisk Prześlij na krótkim formularzu, przekieruje go na stronę z długim formularzem, aby część działała poprawnie. Częścią, która mi pasuje, jest to, że potrzebuję wartości wprowadzonych do krótkich pól formularza Imię, Nazwisko, Adres e-mail i Telefon przekazany do ich odpowiedników pól na długim formularzu.

Jak to zrobić?

To jak mam przekierowanie krótki formularz do dłuższej formie (dodałem go do sekcji Dodatkowe ustawienia dla krótkiego formularza):

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

Każda pomoc będzie mile widziane.

Odpowiedz

7

Hack, hack, hackety, siekać siekać siekać ... Bez sugerując „nie używając form-builder” nie sądzę istnieje eleganckie rozwiązanie - nie można użyć innej metody PHP zasugerował bez modyfikowanie samej wtyczki (i to jest puszka robaków). będę zaproponować rozwiązanie JavaScript, ale istnieją pewne zastrzeżenia (poniżej):

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]); 
     } 
    } 
    } 
}); 

Co to będzie zrobić, to zasadniczo: o poddaniu przechowywać swoje możliwości mini-forma w cookie. Po załadowaniu strony będzie szukać formularza w głównej części strony i zastosować wszystkie zapisane dane cookie.

Uwagi

  • selektorów jQuery są celowo niejednoznaczne, aby uniknąć przyszłych zmian w panelu administracyjnym/plugin, który będzie prawdopodobnie wkręt z identyfikatorami formularzy (łamiąc w ten sposób skrypt).
  • Nie będę się martwić o parowanie nazw pól/opcji - na przykład pole wyboru w mini-formularzu ma nazwę insurance-type, ale pasujące pole w głównym formularzu ma nazwę ins-type - . Musisz się upewnić, że są one zgodne z ta sama nazwa:.
  • Dotyczy to również wartości pól wyboru - jeśli nie ma pasującej wartości, zostanie ona zignorowana (np.niektóre z twoich wartości w głównej formie mają przed sobą znaki » » (a więc nie pasują do siebie).
+0

Możesz dodać ten skrypt w dowolnym miejscu szablonu (na wszystkich stronach), o ile jQuery jest ładowany jako pierwszy - który jest już używany w twoim szablonie. – Emissary

+0

To działało idealnie! Dziękuję Ci!!!! – Cynthia

+0

@Cynthia Cool - jest niezgrabna, ale tak długo, jak działa poprawnie ... :) – Emissary

2

Spróbuj tego.

ustawić działanie naszego pierwszego formularza do pliku php o nazwie xyz.php

<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> 

plik xyz.php stworzy nową formę dla siebie, która w tym przypadku jest twoja druga forma (duży jeden). Ustaw działanie formularza zgodnie z wymaganiami. kod twojego xyz.php będzie wyglądał mniej więcej tak.

<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> 

gdzie pola wejściowe pierwszego formularza będą już wypełnione danymi podanymi przez użytkownika w pierwszym formularzu.

Możesz utworzyć pierwszy formularz samodzielnie i pozwolić formularzowi kontaktowemu utworzyć drugi formularz, podając wartości domyślne, korzystając z powyższej metody.

Mam nadzieję, że to pomoże!

+4

Jak to działa z wtyczką Contact Form 7 dla WordPress? – Cynthia