【发布时间】:2012-11-06 04:12:46
【问题描述】:
我的重力表格表格出现了一些问题。这是一个多页表单,我需要使用第 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;
}
当我使用var_dump($name); 打印$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_dump 的行,变量$name 的值再次设置正确,但第2 页上的字段预填充了值Test。可能在第 1 页上也调用了这个过滤器,所以插件是否有可能缓存这个值?我没有使用缓存插件,所以不知道为什么它不起作用。
【问题讨论】:
-
当你 var dump 时,你是在第二页还是在第一页?
-
var_dump 放置在 function.php 文件中的 name_population_function 中,就在
return之前,并且第一页已经发送。 -
抱歉发布晚了,但万一其他人有这个问题,我发现使用 AJAX 发布实际上并不会逐页发布内容,而只是显示/隐藏表单的一部分以呈现页面的外观.禁用 AJAX 发布允许我将字段从一页填充到下一页。如果您确实需要启用 AJAX 发布,那么您可能需要使用 JavaScript 挂钩才能使其工作。