Jestem pewien, że jest to łatwe dla ekspertów jQuery, ale jestem facetem z backendu i nie mogę znaleźć najlepszego sposobu na zrobienie tego. Mam dwie tablice w Drupalu, jedna to lista nazw widoków, a druga to tablica zawierająca listę wyświetlaczy dla każdego widoku. Oto kod, aby wypełnić te dwie tablice: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;
}
}
Oto fragment postaci, że pracuję z:
$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(),
);
Co chcę zrobić, jest dynamicznie wypełnić pole zaznaczania view_display z odpowiednie wartości. Jeśli użytkownik wybrał opcję "Mój ulubiony widok" z menu "Widok", chcę wyświetlić tablicę $ viewdisplays ["Mój ulubiony widok"] jako #options w polu "view_display".