将对象作为POST变量从jquery传递给php

时间:2014-03-20 11:13:22

标签: javascript php jquery ajax

我需要将两个对象和一个字符串作为post参数传递给php。

这就是我现在的代码:

var obj1 = {'a':'b', 'c':'d'};

var obj2 = {'e':'f', 'g':'h'};

var url = 'hello';

dataParams = { 
    object1: obj1,
    object2: obj2,
    url: url
}
$.ajax({
    url: '/sample.php',
    dataType: 'json',
    method: 'POST',
    data: dataParams
});

在sample.php中

echo $_POST['url'] gives hello
echo $_POST['object1'] or json_decode($_POST['object1']) gives null.
echo $_POST['object2'] or json_decode($_POST['object2']) gives null.

代码有什么问题?

2 个答案:

答案 0 :(得分:2)

您正在使用

method = 'POST'

应该是:

type: 'POST'

另外,echo $ _POST ['object1']将返回'Array'!如果你想看到这些值,请使用print_r($ _ POST ['object1']),好吗? ;)

答案 1 :(得分:2)

感谢您的快速回复。

在我的代码中,我从DOM输入字段填充obj1和obj2。我已将它们初始化为数组而不是对象。

obj1 = [] instead of obj1 ={}

做出改变后,工作正常。

谢谢