web-dev-qa-db-fra.com

Plusieurs formulaires sur une seule page?

Est-il possible de mettre plusieurs formulaires sur une seule page?

J'essaie de créer une page d'offre de coupons. Je voulais avoir deux formulaires pour deux offres différentes de chaque côté d'une page. Chaque formulaire a un champ de texte pour le code promo et son propre bouton d'envoi. Le premier formulaire fonctionne bien; cependant, les valeurs cachées du deuxième formulaire semblent être remplacées par celles du premier formulaire.

J'utilise hook_alter pour modifier le second formulaire pour le rendre différent, mais il a toujours le même form_id que le premier. Est-ce la cause de mes problèmes ou dois-je chercher/penser ailleurs?

Les deux formulaires ont les mêmes valeurs pour "form_id" et "form_token", mais des valeurs différentes pour "form_build_id".

8
user1359

Si vous souhaitez ajouter plusieurs fois le même formulaire, vous devez implémenter hook_forms () . Voir node_forms () pour un exemple.

Cela permet d'utiliser différents form_id, qui pointent tous vers la même fonction de création de formulaire. Par exemple, vous pouvez utiliser yourmodule_some_form_$i puis utilisez hook_forms () pour les pointer vers yourmodule_some_form.

Voir http://www.mohitsharma.net/content/how-show-same-form-multiple-time-page pour un exemple

8
Berdir