当前位置: 首页>>技术教程>>正文


如何在模板中显示重力形式的数据?

webfans 技术教程 , , , 去评论

问题描述

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>

参考资料

本文由朵颐IT整理自网络, 文章地址: https://duoyit.com/article/2726.html,转载请务必附带本地址声明。