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