javascript – How can I assign a variable to content attr of dojo.xhrPost dynamically? – Education Career Blog

How can I assign a variable to content attr of dojo.xhrPost dynamically ? Below is the code and some explanation for my scenario:

Code with hard coded values for content

dojo.xhrPost({
url: /esturl/,
handleAs : "text",
content : {INST1 : '{"0001" : "aa"}',
            INST2 : '{"0002" : "bb"}',
            INST3 : '{"0003" : "cc"}'}
load : load(data),
error : error
});

The number of INST in Content attr can be minimum 1 and max 6, as of now I am hard coding 3 pairs there.
But I want to have one var like buildJason

var buildJson = function (){
}

And this var will populate dynamic value to content attr.
I am having "0001" "aa" values from

var element = dojo.query('input:checked');
element.id;

But everytime user checks different box than depending upon user selection values for content attr should be dynamically populated, any suggestion as to how this can be achieved ?

Update

After using approach suggested by CastroXXL, am getting following error message on firebug.

missing : after property id
var myContent = {};\n

Any suggestions as to how I can deal with it ?

,

To build a JSON object you can use the code below.

var buildJson = function (name, value){
  var myJson = {};

  myJsonname = value;

  return myJson;
};//Forgot the semicolon. 

A script that would put this together could like the following.

var myContent = {};
var count = 0;

dojo.query("input:checked").forEach(function(input){
  myContent'INST' + count = buildJson(input.id, input.value);

  count++;
});

dojo.xhrPost({
  url: /esturl/,
  handleAs : "text",
  content : myContent,
  load : load(data),
  error : error
});

EDIT:
You get that error when you do something like the following.

var test = {
  var myContent = {};
};

You can either close the JSON object before like:

var test = {};
var myContent = {};

or you can make the myContent work in your JSON like:

var test = {
  myContent:{}
};

Leave a Comment