問題描述

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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。