问题描述
Preface
我已经安装了重力表格,创建了一个表单,用户正在将数据提交到我的网站。我想做的是显示用户在我的一个页面上提交给我的网站的数据。
我知道有 Gravity Forms Directory 插件。但这只会给出一个固定的数据显示。
Question
有什么重力形式可以做这样的事情吗? (伪代码):
<?php gforms_get_field( $form_id, $entry_id, 'user_name_field' ); ?>
最佳解决方案
您可以查看文档,但您可能会最终阅读真实文档:源代码。
如果你这样做,你会发现:
-
GFFormsModel::get_leads($form_id)
返回一个表单的条目列表 (也许你已经知道了一个),其中数组中的每个项目本身都是一个数组,「Entry object」 -
GFFormsModel::get_form_meta($form_id)
返回表单中的字段元素列表 (即描述名称,类型,规则等),其中数组中的每个项目都是 「Field object」
一旦你有一个 Entry 对象,你可以通过字段号来访问这些字段作为元素。如果您需要按名称或类型查找字段,则需要遍历表单中的字段列表以获取匹配项,然后按字段 ID 访问条目的字段。
注意:确定字段的类型最好通过将字段的元素传递给 GFFormsModel::get_input_type($field)
编辑:还要注意,在 Entry 对象中只返回每个字段的前 200 个字符。如果您有字段存储更多信息,则需要询问。通过调用 GFFormsModel::get_field_value_long($lead, $field_number, $form)
。
次佳解决方案
感谢 webaware 的答案。
这里有一些复制/意大利面,任何人想要快速开始。这需要一个条目 ID,并从中检索引导和表单。在这种情况下,我使用该 URL 传递该值。例如 somedomain.com?entry=123 。
<?php
$lead_id = $_GET['entry'];
$lead = RGFormsModel::get_lead( $lead_id );
$form = GFFormsModel::get_form_meta( $lead['form_id'] );
$values= array();
foreach( $form['fields'] as $field ) {
$values[$field['id']] = array(
'id' => $field['id'],
'label' => $field['label'],
'value' => $lead[ $field['id'] ],
);
}
?>
<pre><?php print_r($values); ?></pre>
参考文献
注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。