web-dev-qa-db-ja.com

重力フォーム - 重力フォームを事前入力するためのフォームの使用

私は自分で書いた1ページにカスタムフォーム(ハードコードされていて、GFではない)を持っています。

<form id="tailor-select" method="POST">
    <ul>
        <li>
            <ul>
                <li>
                    <input name="input_9.1" type="checkbox" value="Cover Design" id="choice_2_9_1" tabindex="1">
                    <label for="choice_2_9_1" id="label_2_9_1">Cover Design</label>
                </li>
                <li>
                    <input name="input_9.2" type="checkbox" value="Artwork Creation" id="choice_2_9_2" tabindex="2">
                    <label for="choice_2_9_2" id="label_2_9_2">Artwork Creation/Redrawing/Relabelling <a rel="#artwork" href="javascript:void(0);">read more ></a></label>
                </li>
                <li>
                    <input name="input_9.3" type="checkbox" value="Map Creation" id="choice_2_9_3" tabindex="3">
                    <label for="choice_2_9_3" id="label_2_9_3">Map Creation</label>
                </li>
                <li>
                    <input name="input_9.4" type="checkbox" value="Indexing" id="choice_2_9_4" tabindex="4">
                    <label for="choice_2_9_4" id="label_2_9_4">Indexing <a rel="#indexing" href="javascript:void(0);">read more ></a></label>
                </li>
                <li>
                    <input name="input_9.5" type="checkbox" value="Proof Reading" id="choice_2_9_5" tabindex="5">
                    <label for="choice_2_9_5" id="label_2_9_5">Proof Reading <a rel="#proof" href="javascript:void(0);">read more ></a></label>
                </li>
                <li>
                    <input name="input_9.6" type="checkbox" value="Digital Deliverables" id="choice_2_9_6" tabindex="6">
                    <label for="choice_2_9_6" id="label_2_9_6">Digital Deliverables <a rel="#digital" href="javascript:void(0);">read more ></a></label>
                </li>
                <li>
                    <input name="input_9.7" type="checkbox" value="Author Liaison" id="choice_2_9_7" tabindex="7">
                    <label for="choice_2_9_7" id="label_2_9_7">Author Liaison <a rel="#author" href="javascript:void(0);">read more ></a></label>
                </li>
            </ul>
        </li>
        <li>
            <input type="submit" value="Ok! I'm ready to fill out the enquiry form >" class="choose">
        </li>
    </ul>
</form>

私がやりたいことは、これらのチェックボックスのいずれかが 'チェック'されている場合、そのデータは別のページの重力フォーム(ID = 2)に渡され、対応するチェックボックスは既にチェックされているでしょう.

データをPOSTする必要があり、送信時のアクションはGFフォームがあるページのURLにする必要があることがわかりました。

Functions.phpファイルでフックを使用できることも知っていますが、Gravity Formsのドキュメントを読んでも、フォームを使用してフォームに記入することについては何も言われていません。このようなKinda:

function populate_fields($value, $field, $name) {
    $values = array(
         'field_one'   => 'value one',
         'field_two'   => 'value two',
         'field_three' => 'value three',
    );
    return isset($values[$name]) ? $values[$name] : $value;
}
add_filter('gform_field_value', 'populate_fields', 10, 3);

私の質問は、カスタムフォームからGravityフォームにデータを渡す方法を教えてください。

私は本当にどこから始めればいいのかわからない

ありがとう= /

1
Remo Web

これを試して:

  1. Allowフィールドに動的に値を入力するボックスをチェックします(done)。
  2. パラメータ名を入力します(この例ではmy_paramと呼びます)。
  3. functions.phpにコードを追加します。

    function populate_fields( $value, $field, $name ) {
        // Use the POSTed data if it's there
        return isset( $_POST[ $name ] ) ? $_POST[ $name ] : $value;
    }
    add_filter('gform_field_value_my_param', 'populate_fields', 10, 3);
    

フィルタは単にgform_field_value_{$parameter_name}ではなくgform_field_valueです。

参照

動的母集団の使用

1
Pat J