Updating html breaks my interface


#1

I have two select menus on a line. The first updates the second:

library: library_select album: album_select

So when you pick a library, the album_select is automatically updated to
show the relevant choices. This is done using ajax. While the ajax
request
is loading, I switch the album_select with a loading_select, which is a
disabled select menu with only one choice: “loading…”. Now, it
updates
everything fine. But when the album_select is updated, it drops down to
a
new line. It is acting like a block, rather than the inline that I want
it.
When the loading_select replaces the album_select, it stays inline. But
thats not the case once the album_select is finished loading. What is
the
difference between replace_html and :update? What am I missing? I
don’t
see much about this in the docs. Here’s the code.

HTML:

library: <%= library_select_all %> album: <%= album_select_all %>

helpers:

def library_select_all
choices= [[‘All’, -1]]
choices+= @libraries.collect { |l| [l.title, l.id] }
select “library”, “id”, choices, {}, {:id => “library_select”,
:onchange
=> “#{
remote_function(
:update => “album_select”,
:url => { :action => “album_select”},
:with => “‘library_id=’+value”,
:loading => show_loading_select
)
}”}
end

def album_select_all
@albums= Album.find(:all, :order => “title”)
choices= [[‘All’, -1]]
choices+= @albums.collect { |l| [l.title, l.id] }
select “album”, “id”, choices, {}, {}
end

def show_loading_select
update_page do |page|
page.replace_html “album_select”, loading_select
end
end

def loading_select
“<select id=“loading_select”
DISABLED>loading…”
end

Thanks,
Ryan


View this message in context:
http://www.nabble.com/Updating-html-breaks-my-interface-t1724267.html#a4684543
Sent from the RubyOnRails Users forum at Nabble.com.


#2

I got it. I was just stupid. Apparently my call to album_select was
rendering the layout as well. That’s why it was acting as a block.
Sorry.

Ryan

Wuher wrote:

updates everything fine. But when the album_select is updated, it drops
album: <%= album_select_all %>
:update => “album_select”,
choices+= @albums.collect { |l| [l.title, l.id] }
“<select id=“loading_select”
DISABLED>loading…”
end

Thanks,
Ryan


View this message in context:
http://www.nabble.com/Updating-html-breaks-my-interface-t1724267.html#a4684746
Sent from the RubyOnRails Users forum at Nabble.com.