6

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}"
      }
    };
    
  2. 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?

3 Answers 3

7
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]) );
}
Sign up to request clarification or add additional context in comments.

1 Comment

Thanks! This worked perfectly! I will have to try window out above also.
5

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] ) ); 
}

Comments

3

or you could simply use

alert(eval(data)) 

3 Comments

Whoah! You have to be REALLY CAREFUL when using eval()! stackoverflow.com/questions/86513/…
as stated in the second answer in the post u linked : eval isn't always evil. There are times where it's perfectly appropriate.
@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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.