我傳遞大量的變量,以一個HTTP服務器。我不想編寫長的命令提示符,而是想將變量設置爲對象字面值。如果我靜態設置它可以正常工作。但我想在循環中填充對象。 這工作:建立一個對象文本陣列將值傳遞到服務器
var data= { T1: 123,
R1: 'L',
T2: 3434,
R2: 'R'};
$.post(url,data, get_outcome);
但是我想寫一個循環,這樣做,我需要明白,我怎麼會填充的對象常量我的變量名和值。 (該例子只是爲了演示)如果我嘗試這種方式失敗:
var data=[];
data.push({T1: 123});
data.push({T2: 3434});
data.push({R1: 'L'});
data.push({R2: 'R'});
$.post(url,data, get_outcome);
我甚至試過這樣:
var data=[];
var a,val,name;
name={"T1","T2","R1","R2"};
val={"123","3434","L","R"};
for(a=0;a<4;a++){
data.push({name[a]:val[a]});
}
$.post(url,data,get_outcome);
最終的功能應該像這樣工作:
function Save(var values, var val){
var a,name;
var data=[];
for(a=0;a<values;a++){
name="T"+(a+1);
data.push({name: val[a]});
}
$.post(url,data,get_outcome);
}
我在做什麼錯?
我實現由拉吉夫建議的解決方案如下:
function save(){
var data=[];
function dataPush(name, val) {
var obj = {};
obj[name] = val;
data.push(obj);
}
//eg hardcoded values
dataPush('T1',123);
dataPush('T2',3123);
dataPush('R1',"R");
dataPush('R2',"L");
// values stored in arrays elsewhere
for(a=2;a<max;a++){
temp="T"+(a+1);
dataPush(temp,T[a]);
temp="R"+(a+1);
dataPush(temp,R[a]);
}
$.post(url,data, get_outcome);
}
我用Java編程論壇和等待幾天才能得到任何響應。我必須說,你們JavaScript是超級有益的。非常感謝。 – Jan
好吧歡迎這麼多,我的工作 – Rajiv