Drupal表单提交

时间:2013-05-24 12:36:41

标签: drupal drupal-forms drupal-form-submission

我如何发送$ 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 个答案:

答案 0 :(得分:2)

首先,你应该在表单提交处理程序中调用drupal_goto()。 drupal_goto()将立即发送位置标头并退出进程,从而阻止执行其余的提交函数。

如果要处理表单,请在提交处理程序中执行此操作。 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";
}

如果要在后一步中访问它们,请将它们存储在SESSION中;见Raniel的回答。

答案 1 :(得分:1)

您可以使用$ _SESSION变量:

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

然后从其他页面获取此值。