J'ai deux formes dans mon application rails. Ils existent tous deux dans des onglets séparés et quand je soumets un formulaire, je veux que les données de l'autre formulaire soient également sauvegardées. Comment devrais-je faire ça? Ou y a-t-il une meilleure façon de le faire au lieu d'utiliser deux formulaires distincts? Existe-t-il un meilleur moyen de diffuser un formulaire long en plusieurs onglets et quand j'appuie sur soumettre, toutes les données de tous les onglets devraient atteindre mon action. Merci.Deux formes ayant la même action
Répondre
Vous pouvez développer un formulaire unique pour couvrir tous les éléments des deux formulaires.
Ceci est parfaitement correct, à condition que les étiquettes de formulaire s'inscrivent valablement dans le X/HTML.
<form action='action1'>
<!-- All elements from both forms, plus tabs, etc. -->
</form>
La seule chose à considérer est que s'il y aura jamais une autre forme dans cette région qui devra aller à une autre action. Par exemple, si vous ajoutez un troisième onglet, entre les deux autres, cela aura une action différente.
Vous ne voulez pas finir comme:
<form action='action1'>
<!-- elements from the combined forms -->
<form action='action2'>
<!-- elements for a totally different form, not valid inside another form -->
</form>
<!-- more elements from the combined forms -->
</form>
Dans ce cas, il serait préférable de consolider les deux formes à soumettre le temps en utilisant JavaScript.
jQuery (jquery.com) rendrait cela plutôt facile. Par exemple, vous pouvez sérialiser les deux formulaires, puis les concaténer et envoyer le résultat au serveur par courrier ou par courrier électronique.
Voir http://docs.jquery.com/Ajax/serialize.
Il pourrait y avoir de meilleurs moyens de le faire, mais je ne peux pas penser à tout de ma tête.
Je ne peux pas tester si le concept fonctionne en ce moment, mais je crois que vous pouvez utiliser jQuery pour y parvenir, la fonction d'envoi intercepte toutes les soumissions de formulaire sur un onglet, quelque chose le long de ces lignes
$("form").submit(function(event){
event.preventDefault();
//serialize forms here and submit using jquery post
});
Vous devriez regarder dans la méthode fields_for. Vous pouvez faire quelque chose comme ceci:
<% form_for @house do |f| %>
<%= f.text_field :square_feet %>
<% fields_for @listing do |s| %>
<%= s.hidden_field :id %>
<%= s.text_field :asking_price %>
<% end %>
<%= f.submit %>
<% end %>
Et puis dans votre contrôleur que vous voulez faire quelque chose comme ceci:
house = House.find(params[:id])
house.update_attributes(params[:house])
listing = Listing.find(params[:listing][:id])
listing.update_attributes(params[:listing])
C'est une mise à jour, mais vous pouvez faire ce que vous voulez là-dedans.
- 1. Une vue ayant plusieurs formes
- 2. Enfants ayant la même largeur
- 3. En feuilletant deux formes
- 4. Copier la valeur dans textarea sous deux formes différentes (les deux formes dans un fichier .asp différent)
- 5. Trouver une similarité de deux formes vectorielles
- 6. La meilleure façon d'utiliser un contrôle sous deux formes
- 7. ayant des sorties multiples pour une seule action
- 8. Comment rendre deux documents html par action?
- 9. fusionner deux tables avec la même structure
- 10. Mapper une route vers la même action de contrôleur
- 11. Comment faire div ayant coin arrondi avec deux couleurs?
- 12. .NET deux "formes" sur une page et leurs validateurs
- 13. Même .vimrc, deux ordinateurs différents
- 14. Comment synchroniser deux tables MySQL ayant des structures différentes?
- 15. Problèmes avec html-formes
- 16. Séparation de deux formulaires dans la même vue dans ASP.Net MVC
- 17. Est-ce que deux versions de la même bibliothèque peuvent coexister dans la même installation Python?
- 18. Plusieurs instances de TinyMCE sous différentes formes avec le même nom (jQuery)
- 19. Puis-je déployer dans SharePoint deux composants WebPart avec la même DLL, mais deux fichiers .webpart en même temps?
- 20. Mon curseur dans Java ne donne pas le même aspect et la même sensation dans toutes les plate-formes
- 21. Comment invoquer deux fois la même cible msbuild?
- 22. Deux versions de jQuery sur la même page
- 23. Deux thèmes d'interface utilisateur jQuery différents sur la même page
- 24. Deux vues d'alerte dans la même vue contrôleur
- 25. différence de temps entre deux fois dans la même table
- 26. Récupérer deux valeurs dans la même requête linq
- 27. Comment faire deux éléments dans gtk ont la même taille?
- 28. insérer deux types de tableau dans la même table
- 29. En utilisant deux contrôles utilisateur sur la même page?
- 30. NHibernate essaie de créer la même entité deux fois