如何在Wordpress中将值从一个Contact Form 7表单传递到另一个表单?

时间:2013-03-14 17:10:54

标签: wordpress contact-form-7

我的网站有两种形式 - 简短形式和长形式。如果你看http://dforbesinsuranceagency.com,你会看到标头照片旁边的简短表格。长格式为http://dforbesinsuranceagency.com/request-free-insurance-quotes/

当用户在简短表单上点击提交时,它会将它们踢到长表单页面,以便该部分正常工作。给我配合的部分是我需要在简短表格中输入的值将名字,姓氏,电子邮件地址和电话传递到长表上的等效字段。

我该怎么做?

这就是我将短格式重定向到长格式的方式(我将其添加到短格式的附加设置部分):

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

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:8)

Hack,hack,hackety,hack hack hack ...没有暗示“没有使用表单构建器”我不认为有一个优雅的解决方案 - 你不能使用其他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 - 你必须确保它们具有相同的名称
  • 这也适用于选择框值 - 如果没有匹配值,它将被忽略(例如,主窗体中的某些值在前面有»个字符(因此不匹配) )。

答案 1 :(得分:2)

试试这个。

将我们的第一个表单的操作设置为名为xyz.php

的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将为您创建一个新表单,在这种情况下是您的第二个表单(大表单)。根据需要设置表单的操作。 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>

其中第一个表单的输入字段已经填充了用户在第一个表单中给出的详细信息。

您可以自己创建第一个表单,并让联系表单为您创建第二个表单,使用上述方法提供默认值。

希望这有帮助!