I have a section of javascript which i''m trying to use to dynamically generate the options for a mult-select box, when another box''s contents are changed. Basically i have a method that returns an array of arrays, where each array is of the form [name, number] I then iterate over the arrays, and substitute in the values out of the array - <%options_for_select(SubjectFamilyMember.options_for_select(["3"])).each_with_index do |option_tag, i| -%> $("subject_family_members[]").options[<%= i+1.to_i %>]=new Option(''<%option_tag[0] %>'', <%= option_tag[1].to_i %>, false, false); <%end %> When i run this in the console (escaping the quotes), it seems to produce the right results - $("subject_family_members[]").options[1]=new Option("All", 0, false, false); $("subject_family_members[]").options[2]=new Option("Violin", 13, false, false); $("subject_family_members[]").options[3]=new Option("Viola", 14, false, false); $("subject_family_members[]").options[4]=new Option("Cello", 15, false, false); $("subject_family_members[]").options[5]=new Option("Double Bass", 16, false, false); However, when it''s run on the page, all the strings come out as "60" and all the numbers come out as "111" - i see this javascript when i look at the page source - $("subject_family_members[]").options[1]=new Option(''60'', 111, false, false); $("subject_family_members[]").options[2]=new Option(''60'', 111, false, false); $("subject_family_members[]").options[3]=new Option(''60'', 111, false, false); $("subject_family_members[]").options[4]=new Option(''60'', 111, false, false); $("subject_family_members[]").options[5]=new Option(''60'', 111, false, false); So, the ''i'' out of my ''each_with_index'' is coming through fine, but the array elements are being broken somehow. Does anyone know what might be going wrong here? thanks max -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
Max Williams
2008-Jan-18 11:56 UTC
Re: Values broken converting from rails into javascript
After a lot of mucking about, i discovered that it seems to be some problem with ''each_with_index'' - if i do <% for option_tag in SubjectFamilyMember.options_for_select(["3"]) -%> instead, and do the indexing with a local javascript variable then it seems to work fine, at least in terms of producing javascript using rhtml tags. I''d still really like to know why the arrays were all coming out as ["60", 111] when i used each_with_index though, in case anyone has any ideas about that.... -- Posted via http://www.ruby-forum.com/. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---