2

我在我的网站上使用重力形式。我正在为此创建自定义报告,我需要基于特定表单 id 的重力表单字段名称和 id。请让我知道我该怎么做。

我正在使用以下函数,但它显示了基于它的所有表单信息。看起来很难解析它。请让我知道任何功能,以便我可以轻松获取字段名称。

  $forms = RGFormsModel::get_forms_by_id(13);
4

4 回答 4

5

尝试这个

function get_all_form_fields($form_id){
        $form = RGFormsModel::get_form_meta($form_id);
        $fields = array();

        if(is_array($form["fields"])){
            foreach($form["fields"] as $field){
                if(isset($field["inputs"]) && is_array($field["inputs"])){

                    foreach($field["inputs"] as $input)
                        $fields[] =  array($input["id"], GFCommon::get_label($field, $input["id"]));
                }
                else if(!rgar($field, 'displayOnly')){
                    $fields[] =  array($field["id"], GFCommon::get_label($field));
                }
            }
        }
        //echo "<pre>";
        //print_r($fields);
        //echo "</pre>";
        return $fields;
    }
于 2013-12-03T12:53:41.297 回答
2

解析起来并不难:

$fields=array();
foreach ( $forms['fields'] as $field ) {
    $fields[]=array($field['id'] => $field['inputName']);
}

PS 我假设你使用 Gravity Forms < 1.7 因为 RGFormsModel::get_forms_by_id 是自 1.7 以来不推荐使用的函数

于 2013-09-11T00:21:45.853 回答
2
// Get the Form fields
$form = RGFormsModel::get_form_meta($form_id);

// Run through the fields to grab an object of the desired field
$field = RGFormsModel::get_field( $form, $field_id );

我使用上面的内容来获取要过滤其值的特定字段。$field 包含一个具有您想要的所有属性的对象。

echo $field->label      // Gets the label
echo $field->inputName  // Gets the name
echo $field->type       // Gets the type
echo $field->cssClass   // Gets the CSS Classes as a string
于 2017-10-19T09:40:14.563 回答
1

您可以通过使用rgpost()和引用 id ( $field->id) 来获取字段的输入值/内容。

// Check the entered value of every field
foreach( $form['fields'] as &$field ) {

  // Get the content for the specific field
  $fieldContent = rgpost( "input_".$field->id );

  // Check the content
  if ( $fieldContent == ... ){}

}
于 2020-05-08T19:14:23.337 回答