Hi,
- I have declared a local variable named cont in a function named validate.
- I am calling a function process from inside validate.
- I am sending the string 'cont' as argument to validate function.
- In the process function using the string 'cont' i want to access the javascript local variable's value like window['cont']. But i get undefined.
- What i am trying to do is trying to access variables like $GLOBALS in php or $$.
Here is an example of what i did.
<script>
function process(str)
{
alert(window[str]);
}
function validate()
{
var cont='once there lived a king named midas';
process('cont')
}
validate();
</script>
The reason is i do most of the forms as ajax. i dont want to make a request string like this.
var param = "command=insert&content=" + encodeURIComponent(cont);
i want to do like this.
var param = makeParam('command,[insert],content,(cont)');
what i do in makeparam is i use regular expression to extract key value pairs. so i get the string cont from (cont) and i substitute it into window variable like window[cont]. cont will have the string 'cont'.
so how do we get the content of a variable by using the name of the variable as string?
so i am looking for javascript equivalent of php's $$
Edited
a part of the code where i extract cont which is inside (cont) which means i want the content of the string between ().
nxt = str[i+1].match(/\((.*)\)$/)
if(nxt)param += '=' + encodeURIComponent(window[nxt[1]]);
the content of param would be
"command=insert&content=once there lived a king"
// assume that once there lived a king is encoded
Edit. Note2.
After few more responses i am editing the code to add this.
I am trying to do like $GLOBALS in php.
I haven't tried whether $GLOBALS would cantain local variables too.
and learned that local scope will not come into $GLOBALS.
Update after reading Felix King's Update.
I want to use a function which will construct a query string as simpler as possible. like the following.
var param = makeParam('command,insert,/title/,/keywords/,/description/,mode,[1],fckcontent,(cont)');
// if it is a text without // or () then the it is a straight key value pair. so i will do comment=insert.
//if it is /title/ then the key is title and its value is an input elements value with id as title so title=getElementById('title')
//if it is mode,[1] then mode is the key and 1 is its direct value//
//if it is fckcontent,(cont) then fckcontent is the key and cont is a javascript local variable which will contain html content from a WYSIWYG editor.
// a sample result will be
var param = "command=insert&keywords=somekeywords&description=somedescription&mode=1&fckcontent=<p>once there lived a king<p>
and then casablanca stated that $GlOBALS will not contain local scope variables and that is the same way in javascript. that's right.