Как я распечатал бы результаты представления формы на той же странице как сама форма?
Соответствующий hook_menu:
$items['admin/content/ncbi_subsites/paths'] = array(
'title' => 'Paths',
'description' => 'Paths for a particular subsite',
'page callback' => 'ncbi_subsites_show_path_page',
'access arguments' => array( 'administer site configuration' ),
'type' => MENU_LOCAL_TASK,
);
обратный вызов страницы:
function ncbi_subsites_show_path_page() {
$f = drupal_get_form('_ncbi_subsites_show_paths_form');
return $f;
}
Функция создания формы:
function _ncbi_subsites_show_paths_form() {
// bunch of code here
$form['subsite'] = array(
'#title' => t('Subsites'),
'#type' => 'select',
'#description' => 'Choose a subsite to get its paths',
'#default_value' => 'Choose a subsite',
'#options'=> $tmp,
);
$form['showthem'] = array(
'#type' => 'submit',
'#value' => 'Show paths',
'#submit' => array( 'ncbi_subsites_show_paths_submit'),
);
return $form;
}
Отправьте функция (пропущенный проверяют функцию для краткости),
function ncbi_subsites_show_paths_submit( &$form, &$form_state ) {
//dpm ( $form_state );
$subsite_name = $form_state['values']['subsite'];
$subsite = new Subsite( $subsite_name ); //y own class that I use internally in this module
$paths = $subsite->normalized_paths;
// build list
$list = theme_item_list( $paths );
}
Если я печатаю ту переменную $list, это точно, что я хочу, но я не уверен, как получить его в страницу с исходной страницей формы, созданной из 'ncbi_subsites_show_path_page'. Любая справка очень ценится!
Ключевая информация в опубликованной Никитом ссылке - $ form_state ['rebuild'].Вот некоторая информация из документации Drupal 7, которая, как мне кажется, применима к Drupal 6 ...
$ form_state ['rebuild']: Обычно после завершения всей обработки формы и обработчики submit запущены, форма считается выполненной, и drupal_redirect_form () перенаправит пользователя на новую страницу с помощью запроса GET (так что обновление браузера не повторно отправляет форму). Однако, если для параметра 'rebuild' установлено значение ИСТИНА, то новая копия формы немедленно создается и отправляется в браузер; вместо перенаправления. Это используется для многоступенчатых форм, таких как мастера и формы подтверждения . Кроме того, если обработчик проверки формы установил для параметра 'rebuild' значение TRUE и произошла ошибка проверки , то форма перестраивается перед возвратом, включение возможности изменения элементов формы в зависимости от конкретной ошибки проверки.