Drupal Форма отправки
Как я мог отправить значения переменных $first_name и $last_name, не прикрепляя их в URL в следующем примере
function my_module_my_form_submit($form, &$form_state) {
$first_name = $form_state['values']['first'];
$last_name = $form_state['values']['last'];
drupal_goto("/my_view/".$first_name."/".$last_name);
}
2 ответа
Во-первых, вы не должны вызывать drupal_goto() в обработчике отправки формы. drupal_goto() немедленно отправит заголовок местоположения и выйдет из процесса, тем самым предотвращая выполнение остальной части функции submit.
Если вы хотите обработать свою форму, сделайте это в обработчике отправки. API формы Drupal использует тот же URL для отображения формы и в качестве целевого URL.
Если вам нужно перенаправить пользователя после отправки формы, выполните следующие действия.
function my_module_my_form_submit($form, &$form_state) { // $form_state is passed by reference! {
// .. Do submit handling here.
$form_state['redirect'] = 'my_view/'."$first_name/$last_name";
}
Если вы хотите получить к ним доступ на последнем этапе, сохраните их в SESSION; Смотри ответ Раниеля.
Вы можете использовать переменную $_SESSION:
$_SESSION['first_name'] = $first_name;
$_SESSION['last_name'] = $last_name;
затем получите эти значения с другой страницы.