web-dev-qa-db-ja.com

1つのページに複数のフォームがありますか?

1つのページに複数のフォームを配置することはできますか?

クーポン提供ページを作ろうとしています。ページの両側に2つの異なるオファーがある2つのフォームが必要でした。各フォームには、クーポンコードのテキストフィールドと独自の送信ボタンがあります。最初の形式は大丈夫です。ただし、2番目のフォームの非表示の値は、最初のフォームの値によって上書きされるようです。

私はhook_alterを使用して2番目のフォームを変更して別のフォームにしていますが、最初のフォームと同じform_idを持っています。これが私の問題の原因ですか、それとも他の場所を調べたり考えたりする必要がありますか?

2つのフォームの「form_id」と「form_token」の値は同じですが、「form_build_id」の値は異なります。

8
user1359

同じフォームを複数回追加する場合は、 hook_forms() を実装する必要があります。例は node_forms() を参照してください。

これにより、異なるform_idを使用できるようになり、すべて同じformビルダー関数を指します。たとえば、yourmodule_some_form_$iを使用してから、hook_forms()を使用してこれらをyourmodule_some_formにポイントできます。

例については http://www.mohitsharma.net/content/how-show-same-form-multiple-time-page を参照してください

8
Berdir