2013-03-14 50 views
7

我有一個網站,有2種形式 - 一個簡短的形式和一個長的形式。如果你看http://dforbesinsuranceagency.com,你會看到標頭照片旁邊的簡短表格。長格式爲http://dforbesinsuranceagency.com/request-free-insurance-quotes/如何將值從一個Contact Form 7表單傳遞給Wordpress中的另一個表單?

當用戶在短格式上點擊提交時,它會將它們踢到長格式頁面上,以使該部分正常工作。給我適合的部分是我需要輸入短格式字段中的值,名字,姓氏,電子郵件地址和電話傳遞給長表單上的等效字段。

我該怎麼做?

這是怎麼了重定向簡短的表單,長型(我把它加入到短形式的附加設置部分):

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

任何幫助,將不勝感激。

回答

7

劈,砍,hackety,砍砍砍......沒有暗示「不使用形式建設者」我不認爲這是一個很好的解決方案 - 你不能用其他的方法,PHP不建議修改插件本身(這是一個蠕蟲罐)。我將提出一個JavaScript解決方案但也有一些注意事項(下圖):

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

什麼,這將基本上做的是:在提交,存儲在cookie您的迷你形式的選擇。在頁面加載時,它將在頁面的主體中查找表單並應用任何存儲的cookie數據。

注意

  • 的jQuery選擇是故意含糊其詞,以避免將來在你的管理面板/插件的任何變化,這將有可能與形式的ID(從而打破了腳本)螺絲。
  • 我並不關心配對字段/選項名稱 - 例如,您的迷你表格中的選擇框被命名爲insurance-type但主表單中的匹配框被命名爲ins-type - 您必須確保它們是同名
  • 這也適用於選擇框值 - 如果沒有匹配的值,它將被忽略(例如,主窗體中的某些值在前面有» »個字符(因此不匹配)。
+0

只要jQuery首先加載 - 您的模板中已經使用了該模板,您就可以在模板中的任何位置(在所有頁面上)添加該腳本。 – Emissary 2013-03-18 11:52:45

+0

這工作完美!謝謝!!!! – Cynthia 2013-03-18 13:58:32

+0

@Cynthia酷 - 它很笨重,但只要它的工作正確... :) – Emissary 2013-03-18 14:01:11

2

試試這個。

設置我們的第一種形式的行動來命名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> 

文件xyz.php一個PHP文件會爲你創建一個新的形式,在這種情況下是你的第二形式(大單)。根據需要設置表單的動作。你的xyz.php代碼看起來像這樣。

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

其中第一種形式的輸入字段已經用第一種形式的用戶給出的細節填充。

您可以自行創建第一個表單,並讓聯繫表單爲您創建第二個表單,供您使用上述方法提供默認值。

希望這會有所幫助!

+4

這是如何與WordPress的聯繫表7插件工作? – Cynthia 2013-03-18 11:24:06

相關問題