8

我有一个有 2 种形式的网站 - 一种短形式和一种长形式。如果您查看http://dforbesinsuranceagency.com,您会看到标头照片旁边的简短表格。长表格位于http://dforbesinsuranceagency.com/request-free-insurance-quotes/

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

我该怎么做呢?

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

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

任何帮助,将不胜感激。

4

2 回答 2

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-您必须确保它们具有相同的名称
  • 这也适用于选择框值 - 如果没有匹配的值,它将被忽略(例如,主表单中的某些值»前面有 » 字符(因此不匹配)。
于 2013-03-18T11:47:43.107 回答
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>

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

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

希望这可以帮助!

于 2013-03-18T10:18:57.093 回答