在jQuery post参数中使用对象

在jQuery post参数中使用对象,jquery,ajax,post,object,parameters,Jquery,Ajax,Post,Object,Parameters,我认为这是不可能的,但我想了解一下原因。 我想这样做: 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之后 谢谢你的帮助。你可以得到同样的最终结

我认为这是不可能的,但我想了解一下原因。 我想这样做:

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之后


谢谢你的帮助。

你可以得到同样的最终结果,你只是不能在一句话中做到:

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表达式来计算“键”。

我不一定知道如何准确地按照您希望的方式进行计算。但是,您可以在php端发送对象和
json\u decode()

JS:

PHP:

$p_name=json_解码($_POST['pNames']);
$p_vals=json_decode($_POST['pValues']);

对于($i=0;$Ith错误是客户端的。我认为它不喜欢我的句号。而且,它看起来不像是在使用对象作为参数。你是对的。将对象通过非对象参数传递给PHP更像是一种解决方法。然后你可以将对象转换为带有
json\u decode
的数组。它将允许你为m名称对象一个php变量设置为值对象的相应值,如果这有意义的话。是的,显然有很多方法可以传递参数,但我一直在寻找上面的答案。谢谢你的帮助。是的,我考虑过这种方法。但是我希望在单独的对象中同时声明名称和值抱歉,我再看一下这个,这就是我需要的。谢谢:)
$.post("php/dosomething.php",{pNames:pNames, pValues:pVals});
$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];
}