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;

затем получите эти значения с другой страницы.

Другие вопросы по тегам