获取重力表单字段

时间:2013-08-17 18:26:03

标签: wordpress gravity-forms-plugin

我在我的网站上使用重力表格。我正在为此创建自定义报告我需要基于特定表单id的重力表单字段名称和ID。请让我知道如何做到这一点。

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

  $forms = RGFormsModel::get_forms_by_id(13);

4 个答案:

答案 0 :(得分: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;
    }

答案 1 :(得分:2)

解析起来并不难:

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

P.S。我假设你使用Gravity Forms&lt; 1.7作为RGFormsModel :: get_forms_by_id是自1.7以来的弃用函数

答案 2 :(得分:1)

您可以使用 import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; public class AdapterRV extends RecyclerView.Adapter<AdapterRV.PelisViewHolder> { //Fields List<Pelicula> mPeliculas; private Context context; /* TODO, comprobar que no necesitas esto: mNumberItems = numberOfItems; y poner autofit en grid view */ //Constructor public AdapterRV (Context context, ArrayList<Pelicula> peliculas){ mPeliculas = peliculas; this.context= context; } //Metodos @NonNull @Override public PelisViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { Context context = parent.getContext(); int layoutForListItem = R.layout.item_layout; LayoutInflater inflater= LayoutInflater.from(context); View view = inflater.inflate(layoutForListItem, parent, false); PelisViewHolder viewHolder = new PelisViewHolder(view); return viewHolder; } @Override public void onBindViewHolder(@NonNull PelisViewHolder holder, int position) { Pelicula peliculas = mPeliculas.get(position); TextView textView = holder.listItemTittleView; textView.setText(peliculas.getTittle()); } @Override public int getItemCount() { return mPeliculas.size(); } public class PelisViewHolder extends RecyclerView.ViewHolder{ TextView listItemTittleView; public PelisViewHolder(@NonNull View itemView) { super(itemView); listItemTittleView = itemView.findViewById(R.id.tv_title); } } } 并引用ID(rgpost())来获取字段的输入值/内容。

$field->id

答案 3 :(得分:0)

// 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 );

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

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