Je suis un débutant qui utilise des rails et jquery et cherche partout un exemple simple montrant comment faire cela pendant des jours. J'ai une page, poweroutput.html.erb
, qui montre la puissance du clientsystème d'énergie solaire pour une date particulière. Quand ils entrent une date différente, je veux qu’ils voient une sortie différente, mais sans avoir à recharger la page. Sur ma page, javascript et un formulaire (pour soumettre la date à laquelle un utilisateur souhaite voir la puissance de sortie) sont les suivants:
<head>
<script type="text/javascript">
// a lot of javascript
</script>
</head>
<% form_tag(poweroutput_path, :method=>"post", :id => "date-form", :remote => true ) do %>
<%= text_field_tag(
"dt", nil,
{ :id => "date-field",
:class => "dateformat-d-dt-m-dt-Y",
:value => Time.now.getlocal.strftime("%d.%m.%Y")
})
%>
<%= submit_tag "Go" %>
<% end %>
Tout ce que je veux, c'est que le javascript de ma page soit rendu à nouveau lors de l'envoi du formulaire. L’action du contrôleur de ma page est actuellement la suivante:
def poweroutput
# some code
if request.xhr?
@date = params[:dt] # dt is posted when form is submitted
else
@date = Time.now.getlocal.strftime("%d.%m.%Y")
end
respond_to do |format|
format.html
format.js
end
end
Tout ce que je veux, c’est que le javascript de ma page soit restitué avec un @date
quand mon formulaire est soumis. Est-ce que quelqu'un connaît un moyen simple de faire cela?
Réponses:
0 pour la réponse № 1Si c'est beaucoup de javascript, alors:
- Mettez la date quelque part dans la page Web (par exemple, un champ masqué)
- Modifiez le javascript pour qu'il en obtienne la valeur.
- Créez une bibliothèque séparée .js pour JavaScript et chargez-la dans la page.
Ainsi, le navigateur profitera de la mise en cache du javascript, ce qui réduira à la fois la charge de votre serveur et le temps de téléchargement de la page.