I use will_paginate to write successfully through writes. I also use real-time AJAX using jQuery to update my div. There are no problems so far. The problem I have is trying to break into pages with real-time search results. I just get "Page loading ..." without updating the div. Am I missing something? I believe that I might need to somehow bind the click event of the page links using jQuery.
<form id="searchform" accept-charset="utf-8" method="get" action="/search">
Search: <input id="search" name="search" type="text" autocomplete="off" title="Search location, company, description..." />
<%= image_tag("spinner.gif", :id => "spinner", :style =>"display: none;" ) %>
</form>
def search
if params[:search].nil?
@jobs = Job.paginate :page => params[:page], :order => "created_at desc"
elsif params[:search] and request.xhr?
@jobs = Job.search params[:search], params[:page]
end
render :partial => "jobs", :layout => false, :locals => { :jobs => @jobs }
end
def self.search(search, page)
logger.debug "Job.paginate #{search}, #{page}"
paginate :per_page => @@per_page, :page => page,
:conditions => ["description LIKE ? or title LIKE ? or company LIKE ?",
"%#{search}%", "%#{search}%", "%#{search}%"],
:order => 'created_at DESC'
end
$(document).ready(function(){
$("#search").keyup(function() {
$("#spinner").show();
var form = $(this).parents("form");
var url = form.attr("action");
var formData = form.serialize();
$.get(url, formData, function(html) {
$("#spinner").hide();
$("#jobs").html(html);
});
});
});
source
share