bonjour,
Je decouvre ruby on rails en Irlande donc peut etre que je vais mettre
certains termes technique en anglais ne sachant pas s’ils sont traduit
en francais.
Mon probleme je l’ai avec les observe_form.
En fait ce que je souhaite faire c’est mettre de l’AJAX dans un
formulaire. Quand les internautes rentrent des donnees dans certaines
cellules, je veux que la somme s’affiche en dessous.
J’ai 5 inputs pour avions, voitures, helicopter, motos et tanks qui
demande de rentrer le nombre de vehicules a acheter. Et a chaque fois
que l’un de ces inputs est modifie par l’internaute j’aimerais que la
somme de tout (nombre achat avions+nombre achat voiture+nombre achat
helicopter+nombre achat motos+nombre achat tanks) s’affiche en dessous
en temps reelle.
J’ai vu que les observe_form et les observe_field etaient tres pratique
pour cela.
Cependant bien que j’arrive facilement a ce que quand l’un des inputs
change, sa valeur s’inscrive dans ma ligne total ( j’observe 1 input
(field) et j’affiche sa valeur dans total), je n’arrive pas a observer
plusieurs input en meme temps, meme en les mettants dans un form_for.
Voici le code de ce qui marche:
<% form_for :vehicule, :url => { :action => “create”} do %>
<%= render :partial => “form” %>
<%= submit_tag " Create " %>
<%= observe_field :voiture_achat,
:frequency => 0.1,
:update => ‘somme_vehicule’,
:before => “Element.show(‘spinner’)”,
:complete => “Element.hide(‘spinner’)”,
:url => {:action=>‘somme_vehicule’}
%>
<% end %>
sachant que dans ma vue _form.rhtml j’ai un :
<%= text_field “voiture”, “achat”, :size => 10 %>
…
Ca ca marche,
Mais ici je n’affiche que ce qui est entre dans voiture_achat dans le
total.
Moi maintenant j’aimerais observer toutes les entree de mon formulaire
(form_for) et en faire la somme (dans mon controller) en temps reelle.
J’ai passe enormement de temps et quoi que je fasse ca ne marche pas:
Observe_form, nom du formulaire, emplacement de la ou j’ecrit
l’observer… et il n’y a pas grand chose sur internet la dessus, je
deprime!
Mais je ne veux pas de Java Script directement seulement de l’AJAX qui
certes fait du Java script mais comme ca ca me permet de faire une
application plus evolutive et robuste.
Merci de votre aide.