2013-05-24 8 views
-1

Как я мог послал $ first_name и $ last_name значения переменных, не подключая их в URL в приведенном ниже примереDrupal Форма представить

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); 

}

+1

Кажется, это неправильный подход. Что вы пытаетесь достичь здесь? – Sumoanand

ответ

1

Вы можете использовать $ _SESSION переменной а:

$_SESSION['first_name'] = $first_name; 
$_SESSION['last_name'] = $last_name; 

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

2

Во-первых, вы должны не вызов drupal_goto() в форме submit handler. drupal_goto() немедленно отправит заголовок местоположения и завершит процесс, тем самым предотвратит выполнение остальной функции отправки.

Если вы хотите обработать свою форму, сделайте это в обработчике отправки. API-интерфейс Drupal API использует тот же 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"; 
} 

Если вы хотите получить к ним доступ на последнем этапе, храните их в СЕССИИ; См. Ответ Раниэля.