views:

237

answers:

3

Hello all,

So here is what I am trying to do:

1.My variable named data_1 is set.

var data_1 = {
  "y_legend": {
    "text": "# of Patients",
    "style": "{font-size: 20px; color: #778877}"
  },
  "x_legend": {
    "text": "AUG 09 - OCT 09",
    "style": "{font-size: 20px; color: #778877}"
  }
};
  1. In a drop down a user selects an option with the value of 'data_1' that calls load('data_1').

    function load(data) { tmp = findSWF("my_chart"); x = tmp.load( JSON.stringify(data) ); }

My Problem: I'm selecting an option with the value 'data_1' and not the variable itself. So in my function load('data_1'), when I alert(data) I get data = 'data_1'.

So how do i get the contents of my variable data_1 in my load function by passing only the name of the string?

Thanks!

+1  A: 
var data_1 = { /* data goes here */ };

var data_choices = {1: data_1, 2: data_2, /* and so on */};

var load = function (data) {
    // data is "1", "2", etc. If you want to use the full data_1 name, change
    // the data_choices object keys.

    var tmp = findSWF("my_chart");
    var x = tmp.load( JSON.stringify(data_choices[data]) );
}
John Millikin
Thanks! This worked perfectly! I will have to try window out above also.
Fostah
A: 

or you could simply use

alert(eval(data))
Lil'Monkey
Whoah! You have to be REALLY CAREFUL when using eval()! http://stackoverflow.com/questions/86513/why-is-using-javascript-eval-function-a-bad-idea
Matt Ball
well looking at the code he jsut pasted i dont see much issue with eval ...
Lil'Monkey
as stated in the second answer in the post u linked : eval isn't always evil. There are times where it's perfectly appropriate.
Lil'Monkey
@Matt Ball Not agree to give -1 to this answer because suggest to use Eval. Eval could be use carrefully, but could be practice to be use for debug.
Cédric Boivin
+1  A: 

If it's a global variable, you can reference it with

window['the_variable_name']

E.g.

function load(data)
{ 
  tmp = findSWF( "my_chart" ); 
  x = tmp.load( JSON.stringify( window[data] ) ); 
}
jimr