ここで理解しておくべき主なことは、フォーム構築関数は最初のフォーム構築のために一度だけ呼び出されるのではなく、検証が行われる前にフォーム送信時に再度呼び出されるということです。そのため、フォーム ビルド関数を調整$options
して、選択したクライアント (選択されている場合) に応じて、プロジェクトの選択フィールド用に異なる配列を作成できます。
$form_state['values']
これを行うには、次のように をチェックします。
function your_form(&$form_state) {
// ... other form building stuff
// Start with initial default options for project select
$project_options = array('- Please select client first -');
// Adjust, if client already selected
if (isset($form_state['values']) && $form_state['values']['your_client_select']) {
$selected_client = $form_state['values']['your_client_select'];
$project_options = your_function_to_build_project_options_by_client($selected_client);
}
// ... build project select using those options
// ... other form building stuff
}