Pass Ruby Array to Javasript Problem ..

I have an array named weight_array. Now i want to pass it to my javascript function abc.. How can i pass it .. May be a stupid question but did'nt find it by googling also ..

Currently i am doing like this. <%= radio_button "ab", "cd", { :onclick => "abc(weight_array)"; } %>

Tried this also .. <%= radio_button "ab", "cd", { :onclick => "<%= abc(weight_array) %> "; } %>

Tried this as well .. <%= radio_button "ab", "cd", { :onclick => "abc(weight_array.to_json)"; } %>

Also after resolving it, i want to know that if i need to pass the ruby array with join function ..then how can we pass .. I mean the function [ weight_array.join(", ") .. ] ..

Need to know each and every possible answer ..

Please clarify, abc is the javascript function and weight_array is the ruby array, right?

Thanks, Abhinav

Although I know very little javasacript, but try this as well:

<%= radio_button “ab”, “cd”, { :onclick => “abc( " + <%= weight_array %> + " )”; } %>

BTW, you should use join to make weight_array a string before passing to javascript function. You can recreate the array in javascript, if you wish, by splitting back.

Thanks, Abhinav

Tried but of no worth .. Newayz thanks a lot for replying .. :slight_smile:

Cheers ..

Abhinav Saxena wrote:

Did you try converting weight_array into a string first? Because javascript does not understand ruby objects.

Thanks, Abhinav

Use JSON for passing array data between Ruby and Javascript. I think you missed the #{} inside the string above.

<%= radio_button "ab", "cd", { :onclick => "abc(# {weight_array.to_json})"; } %>

Thanks resolved .. Resolved using javascript .. Manipulating that array in javascript only .. :slight_smile:

Mukund wrote: