如何在模板中显示重力表单中的数据?

时间:2013-01-23 作者:hitautodestruct

前言:我已经安装了重力表单,创建了表单,用户正在向我的网站提交数据。我想做的是在我的一个页面上显示用户提交到我的站点的数据。

我知道Gravity Forms Directory 插件。但这只给出了固定的数据表示。

问题

Is there anything in gravity forms that can do something like this? (pseudo code):

<?php gforms_get_field( $form_id, $entry_id, \'user_name_field\' ); ?>

3 个回复
最合适的回答,由SO网友:webaware 整理而成

您可以查看文档,但最终可能会阅读真正的文档:源代码。

如果这样做,您会发现:

  • GFFormsModel::get_leads($form_id) 返回表单的条目列表(可能您已经知道了),其中数组中的每个项本身就是一个数组,一个“Entry object
  • GFFormsModel::get_form_meta($form_id) 返回表单中字段元元素的列表(即描述名称、类型、规则等),其中数组中的每个项都是“Field object
一旦有了条目对象,就可以按字段编号以元素的形式访问字段。如果需要按名称或类型查找字段,则需要遍历表单中的字段列表以获得匹配,然后按字段ID访问条目的字段。

注意:通过将字段的元元素传递给GFFormsModel::get_input_type($field)

编辑:还要注意,条目对象中只返回每个字段的前200个字符。如果您有存储更多信息的字段,则需要请求它,例如通过调用GFFormsModel::get_field_value_long($lead, $field_number, $form).

SO网友:patnz

感谢webaware的回答。

这里有一些副本/面食供任何想快速入门的人使用。这将获取条目ID并从中检索潜在客户和表单。在本例中,我使用URL传递值。e、 g.somedomain。com?条目=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>

SO网友:GhostToast

你可以使用gform_after_submission 钩子将您需要的所有内容写入自定义的post类型,这可能更容易“在字段外”进行操作,并且可以避免(例如)有人删除单个字段并删除与之相关的所有数据。

http://www.gravityhelp.com/documentation/page/Gform_after_submission

Yoast在写入自定义字段方面有很好的writeup,甚至不用钩子。http://yoast.com/gravity-forms-custom-post-types/

祝你好运

结束

相关推荐

在新的Mac OSX Lion环境中的本地主机上获取“Error establing a Database Connection”(在本地主机上建立数据库连接时出错)

我刚买了一台新的Macbook Air,我一直在手动从旧Macbook迁移文件和代码(而不是使用迁移助手,以避免携带cruft)。我有几个网站在本地运行Wordpress(在我的旧Macbook上),还有几个网站只是静态运行,没有CMS。我想我已经正确地配置了Apache和MySQL(在新的Mac上用Homebrew安装MySQL,并使用Sequel Pro对其进行管理),但我的所有Wordpress站点都不断出现“建立数据库连接错误”。静态站点在其本地域上运行得很好,因此我认为我正确设置了Apache和