ajax search feature works in FF but not IE

Hey All,

I put a simple search box on my projects/index view, via the following observe_field call:

<%= observe_field('project_search',
    :url => { :controller => "projects", :action => "index_search"},
    :update => "project-list",
    :loading => "Element.show('search_spinner')",
    :complete => "Element.hide('search_spinner')",
    :frequency => 1,
    :submit => 'search') -%>

The index_search action queries out the proper set of projects & renders the list to a partial, like so:

def index_search
  min_query_length = 1
  q = params[:project_search]

  if q.length > min_query_length then
    @projects = Project.find_by_name_fragment(q) || []
  else
    order_by = params[:order_by] || 'statuses.name'
    @projects = Project.find(:all, :order => order_by, :include => 'status')
  end
  respond_to do |format|
    format.js do
      render :partial => "project_list.html.erb"
    end
  end
end

That partial renders a table w/one row per project. This works just fine from FireFox. But from IE I don't get my table--just a blank page. So the records that used to be in my table id="project-list" are gone, but I don't see the new ones that index_search queried out of the db. Judging from the log, IE is indeed making the request to index_search, passing the params it should, etc. The log even says, e.g.,

  Rendered projects/_project (0.01600)
  Rendered projects/_project_list.html.erb (0.10900)

But IE doesn't seem to want to actually *display* these guys. FF's web development toolbar tells me I'm in "standards compliance mode" when I pull up a searched list of projects, so I believe the markup is all kosher.

What am I doing wrong?

Thanks!

-Roy

Roy Pardee
Research Analyst/Programmer
Group Health Center For Health Studies (Cancer Research Network)
(206) 287-2078
Google Talk: rpardee

Pardee, Roy wrote:

<%= observe_field('project_search',
    :url => { :controller => "projects", :action => "index_search"},
    :update => "project-list", ...
That partial renders a table w/one row per project. This works just fine from FireFox. But from IE I don't get my table--just a blank page. So the records that used to be in my table id="project-list" are gone, but I don't see the new ones that index_search queried out of the db. Judging from the log, IE is indeed making the request to index_search, passing the params it should, etc. The log even says, e.g.,
...
But IE doesn't seem to want to actually *display* these guys. FF's web development toolbar tells me I'm in "standards compliance mode" when I pull up a searched list of projects, so I believe the markup is all kosher.

:update changes the innerHTML of a node, so you will be inserting
the table inside the table tag.

Wrap a div around the table and update that instead.

Fantastic! That did the trick. Thanks!