-1

在下面的示例中,我如何发送 $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);

}

4

2 回答 2

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 中;见拉尼尔的回答。

于 2013-05-26T14:13:23.460 回答
1

您可以使用 $_SESSION 变量:

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

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

于 2013-05-24T12:41:17.140 回答