我在我的网站上使用重力形式。我正在为此创建自定义报告,我需要基于特定表单 id 的重力表单字段名称和 id。请让我知道我该怎么做。
我正在使用以下函数,但它显示了基于它的所有表单信息。看起来很难解析它。请让我知道任何功能,以便我可以轻松获取字段名称。
$forms = RGFormsModel::get_forms_by_id(13);
我在我的网站上使用重力形式。我正在为此创建自定义报告,我需要基于特定表单 id 的重力表单字段名称和 id。请让我知道我该怎么做。
我正在使用以下函数,但它显示了基于它的所有表单信息。看起来很难解析它。请让我知道任何功能,以便我可以轻松获取字段名称。
$forms = RGFormsModel::get_forms_by_id(13);
尝试这个
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;
}
解析起来并不难:
$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 以来不推荐使用的函数
// 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
您可以通过使用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 == ... ){}
}