-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 に答える