Um manipulador de envio de formulários só pode imprimir uma mensagem usando drupal_set_message()
ou gravando uma mensagem no log watchdog()
.
A alternativa é salvar os dados necessários na sessão e redirecionar o usuário (usando $form_state['redirect'] = 'page path';
) para uma página em que o conteúdo da sessão é mostrado.
function firstmodule_menu() {
$items['the path for your page'] = array(
'page callback' => 'firstmodule_show_submitted_data';
// ...
);
return $items;
}
function firstmodule_form1_submit($form, &$form_state) {
$_SESSION['firstmodule_username'] = $username;
// ...
$form_state['redirect'] = 'the path for your page';
}
function firstmodule_show_submitted_data() {
// Populate $result with the string to show.
return $result;
}
Como observação lateral, o primeiro argumento de t()
deve ser uma string literal, não uma string obtida concatenando duas strings, como no seu caso. Você deve usar espaços reservados, como no código a seguir.
drupal_set_message(t("The user is %username", array('%username' => $username)));
No Drupal 7, em vez de retornar uma sequência, você pode retornar uma matriz de renderização .
O que você precisa fazer é ter um retorno de menu, basicamente essa seria uma página que você configurou e exibiu as informações.
Mais informações estão disponíveis aqui: http://api.drupal.org/api/drupal/includes!menu.inc/group/menu/7 e você precisa ler mais sobre hook_menu ()
Espero que ajude, diga-me se você precisar de um exemplo.
fonte