Немного нового здесь. Учу себя PHP/java/и т.д. как ход. Я использовал ЭТО, используя страницу документа GF, чтобы создать связанный выбор, который будет извлекать название компании. (из предыдущей записи GF) в качестве родителя, но у меня проблемы с дочерним элементом (который является особенностью компании).
Я был очень горд собой, когда заставил Parent моего Chained Select срабатывать, используя следующий код:
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;
}
Теперь этот код работает. Может быть, это не красиво, но это работает. Поэтому следующим шагом будет заставить его заполнить поле «Дочерний элемент». Я смог зайти так далеко, но я в тупике...
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 в первом фрагменте, я стану танцевать от радости. Есть идеи?