<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: ajax code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 07 Sep 2008 03:07:35 GMT</pubDate>
    <description>DZone Snippets: ajax code</description>
    <item>
      <title>ajax_pagination_links</title>
      <link>http://snippets.dzone.com/posts/show/386</link>
      <description>Put in a helper somewhere, and use like this:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;%= ajax_pagination_links @client_pages, {:update =&gt; 'search_results', :params =&gt; {:search_query =&gt; @params[:search_query]} } %&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and just update the div your results (and the above line) are in.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;       def ajax_pagination_links(paginator, options={})&lt;br /&gt;         &lt;br /&gt;         options.merge!(ActionView::Helpers::PaginationHelper::DEFAULT_OPTIONS) {|key, old, new| old}&lt;br /&gt;         &lt;br /&gt;         window_pages = paginator.current.window(options[:window_size]).pages&lt;br /&gt; &lt;br /&gt;         return if window_pages.length &lt;= 1 unless&lt;br /&gt;           options[:link_to_current_page]&lt;br /&gt;         &lt;br /&gt;         first, last = paginator.first, paginator.last&lt;br /&gt;         &lt;br /&gt;         returning html = '' do&lt;br /&gt;           if options[:always_show_anchors] and not window_pages[0].first?&lt;br /&gt;             html &lt;&lt; link_to_remote(first.number, :update =&gt; options[:update], :url =&gt; { options[:name] =&gt; first }.update(options[:params] ))&lt;br /&gt;             html &lt;&lt; ' ... ' if window_pages[0].number - first.number &gt; 1&lt;br /&gt;             html &lt;&lt; ' '&lt;br /&gt;           end&lt;br /&gt;           &lt;br /&gt;           window_pages.each do |page|&lt;br /&gt;             if paginator.current == page &amp;&amp; !options[:link_to_current_page]&lt;br /&gt;               html &lt;&lt; page.number.to_s&lt;br /&gt;             else&lt;br /&gt;               html &lt;&lt; link_to_remote(page.number, :update =&gt; options[:update], :url =&gt; { options[:name] =&gt; page }.update(options[:params] ))&lt;br /&gt;             end&lt;br /&gt;             html &lt;&lt; ' '&lt;br /&gt;           end&lt;br /&gt;           &lt;br /&gt;           if options[:always_show_anchors] &amp;&amp; !window_pages.last.last?&lt;br /&gt;             html &lt;&lt; ' ... ' if last.number - window_pages[-1].number &gt; 1&lt;br /&gt;             html &lt;&lt; link_to_remote(paginator.last.number, :update =&gt; options[:update], :url =&gt; { options[:name] =&gt; last }.update( options[:params]))&lt;br /&gt;           end&lt;br /&gt;         end&lt;br /&gt;       end&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 15 Jun 2005 02:13:35 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/386</guid>
      <author>mixonic (Matthew Beale)</author>
    </item>
  </channel>
</rss>
