関数を含むカスタム モジュールを作成しましたhook_submit
。この時点で、リダイレクトせずに別のページ/フォームをロードすることは可能ですか?
その理由は、submit 関数のロジック内にあり、別のページに渡したい変数がありますが、データのポスト/取得には適していない複雑なデータ構造 (オブジェクト、配列など) で構成されています。
ありがとう
hook_submit()は、フォーム処理のチェーンの最後尾です。それが任務を完了したら、2つのオプションがあります:リダイレクト(drupal_goto()を介して、または$ form ["#redirect']を返すことによって)別のページにリダイレクトするか、何もしません。この場合、送信ボタンをクリックしたページは次のようになります。リロードしました。
リダイレクト先にデータを渡すためのいくつかのオプションがあります。$_SESSIONとデータベースが最も頻繁に使用されます。javascriptのDrupal.settingsオブジェクトに複雑なデータ値を設定するオプションもありますが、この場合、最終目標がPHPを介してその情報を解析することである場合、それほど多くは購入できません。
最終目標についての具体的な情報がなければ、具体的なアドバイスを提供することは困難ですが、$ _ SESSIONまたはデータベースをキャッシュとして使用することができないと仮定すると、コアFAPIとctoolsのそれぞれのマルチの実装を検討することを検討してください。 -追加のガイダンスのためのパートフォーム。
Drupal では、フォームが送信されるパスを決定できます。このために使用できます
$form['#action'] = url("<another page>") ;
フォーム内で送信した後、別のページに移動しても、そのフォームからすべての投稿値を取得できます。$_POST['<element_name>']
さらにポスト値を取得するために使用します。
これが役立つことを願っています。