Screencast: Suchen, Sortieren, Pagination mit AJAX

Viele Administrationsseiten bieten die Möglichkeite zu Suchen, Sortieren oder Daten seitenweise anzuzeigen. In dieser Woche zeigt Ryan wie diese Funktionen mit AJAX umgesetzt werden können.

 

Download:

Download(20.7 MB, 13:43)
Alternativer Download für iPod & Apple TV(19.9 MB, 13:43)

 

Resourcen:

 

Quellcode:

[bash]
rails g jquery:install
[/bash]

[ruby]
# Gemfile
gem ‚will_paginate‘, ‚3.0.pre2‘
gem ‚jquery-rails‘

# products_controller.rb
def index
@products = Product.search(params[:search]).order(sort_column + " " + sort_direction).paginate(:per_page => 5, :page => params[:page])
end

# models/product.rb
def self.search(search)
if search
where(’name LIKE ?‘, "%#{search}%")
else
scoped
end
end

# helpers/application_helper.rb
def sortable(column, title = nil)
title ||= column.titleize
css_class = column == sort_column ? "current #{sort_direction}" : nil
direction = column == sort_column && sort_direction == "asc" ? "desc" : "asc"
link_to title, params.merge(:sort => column, :direction => direction, :page => nil), {:class => css_class}
end
[/ruby]

[html]
<!– products/index.html.erb –>
<%= form_tag products_path, :method => ‚get‘, :id => "products_search" do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<div id="products"><%= render ‚products‘ %></div>
<% end %>

<!– products/_products.html.erb –>
<%= hidden_field_tag :direction, params[:direction] %>
<%= hidden_field_tag :sort, params[:sort] %>
<%= will_paginate @products %>

<!– products/index.js.erb –>
$("#products").html("<%= escape_javascript(render("products")) %>");
[/html]

Ein Gedanke zu „Screencast: Suchen, Sortieren, Pagination mit AJAX“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.