web-dev-qa-db-ja.com

Node送信ボタンの値に基づくフォームのリダイレクト

一度送信されたフォームをリダイレクトするいくつかの方法を読んで実験しました。ただし、操作がt( '保存')の場合にのみノードフォームをリダイレクトします。

$ form ['#redirect'] = 'blah'をform_alterに設定すると、すべてのタイプのフォーム送信でリダイレクトされます。送信ハンドラを追加して$ form_state ['redirect']を設定すると、これはdrupalのnode_form_submitによってオーバーライドされるだけです。

送信操作がt( 'Save')と言われた場合にのみノード送信をリダイレクトする正しい方法は何ですか?

注:$ form ['#redirect']の一般的なform_alter試行は、node /%node/deleteにリダイレクトする必要があるため、ノード削除送信ハンドラを妨害することがわかりました。したがって、私はより正確な方法を探しています。

3
lordg

答えは、フォームではなく送信ボタンに送信ハンドラをアタッチすることでした。その場合、$ form_state ['redirect']は必要に応じて機能します。

4
lordg