これは jQuery の専門家にとっては簡単なことだと思いますが、私はバックエンドの人なので、これを行う最善の方法を見つけることができません。Drupal には 2 つの配列があります。1 つはビューの名前のリストで、もう 1 つは各ビューのディスプレイのリストを含む配列です。2 つの配列を設定するコードは次のとおりです。
//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 選択ボックスに適切な値を動的に入力することです。ユーザーが「view」の選択から「My Favorite View」を選択した場合、「view_display」フィールドへの #options として $viewdisplays['My Favorite View'] 配列を表示したいと考えています。