Я уверен, что это очень удобно для экспертов jQuery, но я сторонний парень и не могу найти лучший способ сделать это. У меня есть два массива в Drupal, один из них - список имен видов, а другой - массив, содержащий список дисплеев для каждого представления. Вот код, чтобы заполнить два массива:Drupal Dynamic Select on a Form
//load list of views in to array for select lists
$views = views_get_all_views();
$viewnames = array();
$viewdisplays = array();
foreach ($views as $view) {
$viewnames[$view->name] = $view->name;
foreach ($view->display as $k) {
$id = $k->id;
$title = $k->display_title;
$viewdisplays[$view->name]['id'] = $id;
$viewdisplays[$view->name]['title'] = $title;
}
}
Вот фрагмент кода формы, что я работаю с:
$form['view'] = array(
'#type' => 'select',
'#title' => t('Select the view to be used for display'),
'#options' => $viewnames,
);
$form['view_display'] = array(
'#type' => 'select',
'#title' => t('Select the display of the gallery view to be used'),
'#options' => array(),
);
То, что я хочу сделать, динамически заполнить поле выбора view_display с соответствующие значения. Если пользователь выбрал «Мой любимый вид» из «просмотра», я хочу отобразить массив $ viewdisplays ['My Favorite View'] в качестве поля #options в поле view_display.