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

ハック、ハック、ハック、ハック ハック ハック... 「フォームビルダーを使用しない」ことを提案せずに、エレガントな解決策があるとは思いません-プラグイン自体を変更せずに提案された他の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は、新しいフォームを作成します。この場合は、2番目のフォーム(大きなフォーム)です。必要に応じてフォームのアクションを設定します。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>

ここで、最初のフォームの入力フィールドには、最初のフォームでユーザーが指定した詳細がすでに入力されています。

最初のフォームを自分で作成し、連絡先フォームに2番目のフォームを作成させて、上記の方法を使用してデフォルト値を提供することができます。

お役に立てれば!

于 2013-03-18T10:18:57.093 に答える