問題描述

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