我如何发送$ 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);
}
答案 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;
然后从其他页面获取此值。