(dup) Ajaxified Select List


#1

(woops!, sent again in it’s own thread, sorry for the dup)

Hi,

I’m trying to dynamically add items to a select list with Ajax. I’m
displaying the options of the list with render_partial_collection and
passing it a list of galleries. When the page is hit initially the
drop-down list renders correctly (with galleries from my db). When I
submit my form (using form_remote_tag) with the new gallery to add, my
controller takes a turn at rendering the same partial, but spits out
plain text within the select tags instead of option elements. Right, so
here’s the code…

controller: test_controller.rb
class TestController < ApplicationController
def index
@galleries = Gallery.find(:all).map { |g| g.name }
end
def add
@newGal = Gallery.new
@newGal.name = @params[‘new_gallery’]
@newGal.save
@galleries = Gallery.find(:all).map { |g| g.name }
render_partial_collection ‘shared/gallery’, @galleries
end
end

_partial: shared/gallery.rhtml

<%= gallery %>

view: index.rhtml
<%= form_remote_tag(:update => “update_galleries”,
:complete => evaluate_remote_response,
:url => { :action => :add } ) %>
<%= text_field_tag :new_gallery %>
<%= submit_tag “Submit” %>
<%= end_form_tag %>

<%= render_partial_collection 'shared/gallery', @galleries %>

What’s interesting to me is that if I use a div tag instead of a
select, and add, say, a list of links using my partial, the html is
retained. Perhaps I’ve just been staring at this too long this morning.
Ideas?

Thanks,
Rob


#2

I’m trying to dynamically add items to a select list with Ajax. I’m
displaying the options of the list with render_partial_collection and
passing it a list of galleries. When the page is hit initially the
drop-down list renders correctly (with galleries from my db). When I
submit my form (using form_remote_tag) with the new gallery to add, my
controller takes a turn at rendering the same partial, but spits out
plain text within the select tags instead of option elements.

I just found that it works fine in Safari but not in Firefox. Troubling.