【发布时间】:2017-12-02 17:50:00
【问题描述】:
在我的示例中,我从重力表单单选按钮字段(字段 ID 4)收集表单数据。对于“First Choice”的选择,字段 ID 4 的值为 0。因此,为了解决我正在使用变量 $field_id 的字段,选择值是通过使用 $entry[$field_id] (它的值是 0)收集的,并且该值的文本标签是“First Choice”。值为 0 的字段 ID 4 的预期结果是文本“First Choice”。我需要将此打印到文本文件中。我做了以下事情:
$field_id = 4;
$field = GFFormsModel::get_field( $form, $field_id );
$choice_text = $field['choices'][$entry[$field_id]]['text'];
$data = $choice_text;
file_put_contents($my_file,$data);
$tmpfile = fopen($my_file, "r");
$contents = fread($tmpfile, filesize($my_file));
上述方法将按预期将“First Choice”打印到我的文本文件中。但是我需要用一个函数来做到这一点。如果我尝试使用以下函数执行此操作,出于某种原因,我将返回 0:
function choiceLabel($field_id){
$field = GFFormsModel::get_field( $form, $field_id );
$choice_text = $field['choices'][$entry[$field_id]]['text'];
return $choice_text;
}
$data = choiceLabel(4);
file_put_contents($my_file,$data);
$tmpfile = fopen($my_file, "r");
$contents = fread($tmpfile, filesize($my_file));
这会产生一个错误,提示“警告:fread():长度参数必须大于 0”。为什么我的函数返回 0 值而不是字符串“First Choice”?感谢您查看此内容。
【问题讨论】:
-
$entry 是在哪里定义的,它在你的函数范围内吗?您可能有一个范围问题,您在函数中引用了不在范围内的内容,因此为 null 或零。
-
谢谢。我尝试将 $entry[$field_id] 替换为 0 并得到相同的结果。我认为 GFFormsModel 可能是问题所在。这是重力形式的功能。也许它不能在我的职能范围内工作?在那种情况下,我什至没有拉起这个领域。