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