9

Gravity Forms フォームに問題があります。これは複数ページのフォームで、ページ 1 の投稿値を使用してページ 2 のフィールドにデータを入力する必要があります。しかし、うまくいきません。もちろん、2ページ目のフィールドは「フィールドに動的にデータを入力できるようにする」ように構成されており、フィールドのパラメーターは「名前」に設定されています。これが私のコードです:

add_filter('gform_field_value_name', 'name_population_function');
function name_population_function($value){
    $name = $_POST['input_2'] . ' ' . ( ! empty( $_POST['input_3'] ) ? ( $_POST['input_3'] . ' ' ) : NULL ) . $_POST['input_1'];
    return $name;
}

$name使用して変数の値を出力すると、var_dump($name);実際には正しいです。

をに変更する$name$name = 'Last Middle First';、フィールドにデータが入力されます。

ご協力ありがとうございました。

編集:テスト目的で、コードを次のように変更しました:

add_filter('gform_field_value_name', 'name_population_function');
function name_population_function($value){
    $name = 'Test';
    if ( ! empty( $_POST['input_1'] ) && ! empty( $_POST['input_2'] ) ) {
        $name = $_POST['input_2'] . ' ' . ( ! empty( $_POST['input_3'] ) ? ( $_POST['input_3'] . ' ' ) : NULL ) . $_POST['input_1'];
    //var_dump( $name );
    }
    return $name;
}

var_dumpvariable の値を含む行のコメントを外すと、$name再び正しく設定されますが、2 ページ目のフィールドには value が事前入力されますTest。おそらくこのフィルターはページ 1 でも呼び出されるので、プラグインがこの値をキャッシュする可能性はありますか? キャッシュ プラグインを使用していないため、機能しない理由がわかりません。

4

3 に答える 3

1

フォームを複数のページにまたがらせるのではなく、jQuery を使用して、.hideまたはを使用して複数のページの印象を作成できます.slideToggle。これにより、問題が解決され、フォーム データの送信がはるかに簡単になります。次に、過去の入力から値を呼び出すだけです。

于 2014-06-28T13:36:57.697 に答える
0

クエリ文字列を使用して、データを永続化し、フィールドに動的に入力することができます。

http://siteurl.com/form-url/?your_parameter=値

add_filter('gform_field_value_author_email', 'populate_post_author_email');
function populate_post_author_email($value){
global $post;

$author_email = get_the_author_meta('email', $post->post_author);

return $author_email;
}
于 2013-11-17T05:21:12.593 に答える