我认为这是不可能的,但我想了解原因。 我想做这样的事情:
var pVals = {
ob1: "postvar1",
ob2: "postvar2",
ob3: "postvar2"
};
$.post("php/dosomething.php",{pVals.ob1:"object 1", pVals.ob2:"object 2", pVals.ob3:"object 3"});
我得到了一个错误:
缺少:属性ID
之后
感谢您的帮助。
答案 0 :(得分:1)
你可以得到相同的最终结果,你不能在一个陈述中做到:
var pVals = {
ob1: "postvar1",
ob2: "postvar2",
ob3: "postvar2"
};
var obj = {};
obj[pVals.ob1] = "object 1";
obj[pVals.ob2] = "object 2";
obj[pVals.ob3] = "object 3";
$.post("php/dosomething.php", obj);
这是因为匿名散列样式构造函数中的“键”仅被视为文字,它们本身不能是表达式。但是当您使用类似数组的引用时,您可以使用任何有效的JavaScript表达式来计算“密钥”。
答案 1 :(得分:1)
我不一定知道如何按照你想要的方式去做。但是你可以在php端发送对象和json_decode()
。
JS:
$.post("php/dosomething.php",{pNames:pNames, pValues:pVals});
PHP:
$p_names = json_decode($_POST['pNames']);
$p_vals = json_decode($_POST['pValues']);
for($i=0;$i<count($p_names);$i++){
$$p_names[$i] = $p_vals[$i];
}
应该具有您正在寻找的相同效果。