这里有点新手。自学 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 工作,我就会跳起欢乐的舞蹈。有什么想法吗?