如何动态地将变量分配给dojo.xhrPost的内容attr?

时间:2010-10-21 04:20:50

标签: javascript jquery ajax dojo

如何动态地将变量分配给dojo.xhrPost的内容attr?以下是我的方案的代码和一些解释:

包含内容硬编码值的代码

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

Content attr中INST的数量可以是最小1和最大6,截至目前我在那里硬编码3对。 但我希望有一个var buildJason

var buildJson = function (){
}

这是var will populate dynamic value to content attr。 我来自

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

但是,每次用户检查不同的框而不是依赖于用户选择值时,内容attr应该动态填充,有关如何实现这一点的任何建议吗?

更新

使用CastroXXL建议的方法后,我在firebug上收到以下错误消息。

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

有关如何处理它的任何建议吗?

1 个答案:

答案 0 :(得分:1)

要构建JSON对象,您可以使用下面的代码。

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

  myJson[name] = value;

  return myJson;
};//Forgot the semicolon. 

将这些放在一起的脚本可能如下所示。

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

编辑: 当您执行以下操作时,您会收到该错误。

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

您可以在之前关闭JSON对象:

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

或者你可以让myContent在你的JSON中工作,如:

var test = {
  myContent:{}
};