0


这里有点新手。自学 PHP/java/etc。试一试。我一直在使用这个使用 GF 的文档页面来创建一个链式选择,它将公司名称(来自以前的 GF 条目)作为父级,但是我在子级(这是公司的功能)方面遇到了问题。

当我使用以下代码让我的链式选择的父级触发时,我为自己感到非常自豪:

add_filter("gform_pre_render_14", "populate_companies");
add_filter("gform_admin_pre_render_14", "populate_companies");
add_filter( "gform_chained_selects_input_choices_14_5_1", "populate_companies");
 function populate_companies( $form, $input_items, $form_id, $field, $input_id, $chain_value ){
  if( $form["id"] != 14 )
  
         return $form;
   
  $items = array();
   
$form_id = '7';
$entries = GFAPI::get_entries( $form_id );

   if (is_array($entries))
{
	foreach($entries as $fcompany) $items[] = array( 'value' => rgar( $fcompany, '4' ), 'text' => rgar( $fcompany, '4' ), 'isSelected' => false );
}
     foreach($form["fields"] as &$field)
        if($field["id"] == 5){
            $field["choices"] = $items;
        }
    return $form;
}

现在,该代码有效。也许它不漂亮,但它有效。所以下一步是让它填充 Child 字段。我已经能够做到这一点,但我很难过......

add_filter("gform_pre_render", "populate_features");
add_filter("gform_admin_pre_render", "populate_features");
add_filter( "gform_chained_selects_input_choices_14_5_2", "populate_features");
 function populate_features( $form, $input_items, $form_id, $field, $input_id, $chain_value ){
  if( $form["id"] != 14 )
  
         return $form;
   
  $items = array();
  $selected_fcompany = $chain_value[ "{$field->id}.1" ];
   if( ! $selected_fcompany ) {
        return $input_choices;
    }
   
$form_id = '7';
$entries = GFAPI::get_entries( $form_id );

   if (is_array($entries))
{
	foreach($entries as $cfeature) $items[] = array( 'value' => rgar( $cfeature, '10' ), 'text' => rgar( $cfeature, '10' ), 'isSelected' => false );
}
     foreach($form["fields"] as &$field)
        if($field["id"] == 5){
            $field["choices"] = $items;
        }
    return $items;
}

我觉得问题出在chained_value上。哎呀,如果我能让它通过第一个片段中的第一个 foreach 工作,我就会跳起欢乐的舞蹈。有什么想法吗?

4

1 回答 1

0

最终选择了 Gravity Plus 插件。它真的很方便,但表格上不能有多个,这有点蹩脚。让它工作需要一些工作,但让我知道你需要帮助!

https://gravityplus.pro/gravity-forms-dynamic-population/

于 2018-03-05T06:30:13.523 回答