2010-10-21 77 views
0

如何动态地将变量分配给dojo.xhrPost的内容attr?下面是代码和一些说明我的情况:如何动态地将变量分配给dojo.xhrPost的内容attr?

代码硬编码值内容

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

INST的内容ATTR数量可以是最小为1,最大6,截至目前我我在那里硬编码3对。 但我希望有一个像varbuildJason

var buildJson = function(){ 
} 

var will populate dynamic value to content attr。 我有从

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

但是每当用户检查不同的盒子"0001" "aa"值比取决于内容ATTR用户选择的值会动态填入,任何建议,如何这可以实现吗?

更新

使用CastroXXL建议的方法后,我就放火收到以下错误消息。

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

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

回答

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:{} 
}; 
+0

我得到'丢失:属性后, id var myContent = {}; \ n在使用您建议的方法后,在萤火虫后,不知道如何前进,有任何建议CastroXXL – Rachel 2010-10-21 13:52:15

+0

当您已经在JSON对象内时,通常会发生此错误。这很可能是导致问题的那条线之前的代码。你能证明吗? – CastroXXL 2010-10-21 14:11:31

+0

谢谢CastroXXL,我能够得到它的工作。 – Rachel 2010-10-21 20:05:47

相关问题