Save selected checkboxes after remote_function call

I have an A-Z list that controls a list of check_box_tag values. So a user clicks on a A-Z link, the list of checkboxes are displayed, they tic the checkboxes and the value is stored in the session variable, and they go on like that until they submit. Once they submit, the session variable is looped over and the values are saved.

The A-Z list uses link_to_remote to update the list. The check_box_tags uses a remote_function call to store the checked value in a session variable.

This all works fine. The problem is that when the user selects a checkbox and then selects a new A-Z link and then goes back to the same A-Z link the checkbox is no longer selected.

<%= check_box_tag(db.id, db.id, session[:selected].include? (db), :onclick => remote_function( :url => {:action => 'selected',:cid => db})) %> <%=db.title%>

def selected     session[:selected] << params[:cid]     render :nothing => true, :layout => false   end

I know the remote_function call is adding the object to the session[:selected] array, but for some reason session[:selected].include?(db) is not returning true.

Any suggestions? Thanks in advance.

I know the remote_function call is adding the object to the session[:selected] array, but for some reason session[:selected].include?(db) is not returning true.

because db is apparently an activerecord object, but your session contains ids

Fred

Thanks Fred, but no go. I have tried both:

<%= check_box_tag(db.id, db.id, session[:selected].include? (db), :onclick => remote_function( :url => {:action => 'selected',:cid => db})) %> <%=db.title%>

and

<%= check_box_tag(db.id, db.id, session[:selected].include? (db.id), :onclick => remote_function( :url => {:action => 'selected',:cid => db.id})) %> <%=db.title%>

Any other suggestions?

Kim wrote:

<%= check_box_tag(db.id, db.id, session[:selected].include? (db.id), :onclick => remote_function( :url => {:action => 'selected',:cid => db.id})) %> <%=db.title%>

Any other suggestions?

session[:selected].include?(db.id.to_s)

yep, that was it. Thanks.