Sono sicuro che questo è facile per gli esperti di jQuery, ma sono un backend e non riesco a trovare il modo migliore per farlo. Ho due array in Drupal, uno è un elenco di nomi di viste e l'altro è un array che contiene un elenco di display per ogni vista. Ecco il codice per popolare le due matrici: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;
}
}
Ecco il frammento di forma che sto lavorando con:
$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(),
);
Quello che voglio fare, è compilare in modo dinamico la casella di selezione view_display con i valori appropriati. Se l'utente ha selezionato "La mia vista preferita" dalla "vista" seleziona, voglio visualizzare l'array $ viewdisplays ['My Favorite View'] come le #opzioni nel campo 'view_display'.