J'ai une table des lieux. La page d'index des lieux par défaut répertorie tous les enregistrements de lieu et vous permet de les filtrer par zone et ou type en utilisant un formulaire sur la même page avec un bouton de soumission et un rechargement de page.Comment puis-je changer mon formulaire de filtre normal en utilisant un submit, pour utiliser AJAX?
Tous les lieux trouvés sont alors affichés et le formulaire se réinitialise.
Comment puis-je faire en sorte que la liste des lieux se mette à jour sans recharger la page en cliquant simplement sur les différentes options de filtrage? Il n'y a donc pas de bouton Soumettre et le formulaire conserve son état modifié.
Le contrôleur des lieux
def index
if
@venues = Venue.with_type(params[:venuetypes]).with_area(params[:areas]).order("average_rating DESC").all
else
@venues = Venue.all
end
@venues = @venues.paginate :per_page => 15, :page => params[:page]
end
Les lieux index.html.erbCe utilise déjà jQuery-UI pour obtenir une meilleure recherche des cases à cocher
<div class="filter_options_container">
<%= form_tag '', :method => :get, :id => 'filter_form' do %>
<fieldset class="filter_form_fieldset venuetypes">
<% Venuetype.all.each do |v| %>
<p class="venuetype_check"><%= check_box_tag 'venuetypes[]', v.id, false, :id => "venuetype-#{v.id}" %>
<label for="venuetype-<%= v.id %>"><%= v.name %></label></p>
<% end %>
</fieldset>
<fieldset class="filter_form_fieldset areas">
<% Area.all.each do |a| %>
<p class="area_check"><%= check_box_tag 'areas[]', a.id, false, :id => "area-#{a.id}" %>
<label for="area-<%= a.id %>"><p1><%= a.name %></p1></label></p>
<% end %>
</fieldset>
<div class="filter_form_button">
<p2><input type="submit" value="Filter"/></p2>
</div>
<% end %>
</div>
<div class="venue_partials_container">
<%= render :partial => 'venue', :collection => @venues %>
<div class="clearall"></div>
<div class="paginate_container">
<div class="paginate">
<%= will_paginate @venues %>
</div>
</div>
</div>
Merci beaucoup pour toute aide est très appréciée!