2013-03-14 9 views
7

Ho un sito con 2 moduli: una forma breve e una forma lunga. Se guardi allo http://dforbesinsuranceagency.com vedrai il modulo breve accanto alla foto del masthead. Il modulo lungo è http://dforbesinsuranceagency.com/request-free-insurance-quotes/Come passare i valori da un modulo Modulo contatti 7 a un altro in Wordpress?

Quando l'utente fa clic su Invia nel modulo breve, li passa alla pagina del modulo lungo, in modo che la parte funzioni correttamente. La parte che mi dà la convinzione è che ho bisogno dei valori inseriti nei campi del modulo breve Nome, Cognome, Indirizzo Email e Telefono passati ai loro campi equivalenti nel modulo lungo.

Come posso fare?

Questo è come mi sto reindirizzando breve modulo per la forma lunga (ho aggiunto alla sezione Impostazioni aggiuntive per la forma breve):

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

Qualsiasi aiuto sarebbe apprezzato.

risposta

7

Hack, hack, hackety, mod mod mod ... Senza suggerendo "non si utilizza un form-builder" Io non credo che ci sia una soluzione elegante - non è possibile utilizzare l'altro metodo PHP suggerito senza modificando il plugin stesso (e questo è un barattolo di worm). Io propongo una soluzione di JavaScript, ma ci sono alcuni avvertimenti (sotto):

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

Ciò che questo sarà essenzialmente fare è: su presentazione, memorizzare le opzioni di mini-modulo in un cookie. Al caricamento della pagina cercherà quindi un modulo nel corpo principale della pagina e applicherà i dati dei cookie memorizzati.

Note

  • I selettori di jQuery sono volutamente ambiguo per evitare eventuali futuri cambiamenti nel vostro pannello di amministrazione/plugin che probabilmente vite con gli ID di forma (rompendo in tal modo lo script).
  • Non sto parlando dei nomi di campi/opzioni - ad esempio la casella di selezione nel tuo mini-modulo è denominata insurance-type tuttavia la casella corrispondente nel modulo principale è denominata ins-type - dovrai assicurarti che siano del stesso nome.
  • Questo vale anche per i valori della casella di selezione: se non esiste un valore corrispondente, verrà ignorato (ad es.alcuni dei tuoi valori nella forma principale hanno » » caratteri davanti (e quindi non corrispondono).
+0

È possibile aggiungere tale script in qualsiasi punto del modello (su tutte le pagine) purché jQuery sia caricato per primo - che viene già utilizzato nel modello. – Emissary

+0

Questo ha funzionato perfettamente! Grazie!!!! – Cynthia

+0

@Cynthia Cool: è goffo ma finché funziona correttamente ... :) – Emissary

2

provare questo.

impostare l'azione del nostro primo modulo per un file php chiamato 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> 

il file xyz.php creerà una nuova forma per voi che in questo caso è la vostra seconda forma (quello grande). Imposta l'azione del modulo come richiesto. il codice del tuo xyz.php sarà simile a questo.

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

dove i campi di input del primo modulo saranno già riempiti con i dettagli forniti dall'utente nel primo modulo.

È possibile creare il primo modulo da soli e lasciare che il modulo di contatto crei il secondo modulo per fornire i valori predefiniti utilizzando il metodo precedente.

Spero che questo aiuti!

+4

Come funziona con il plugin Contact Form 7 per WordPress? – Cynthia