假设我有以下数据:
现在我需要将它全部传递给一个PHP脚本。 我将其打包成一个变量,如下所示:
并且这个:
2)
使用PHP文件
var arr = [], arr1 = [], arr2 = [], arr3 = [], arr4 = [];
var a = 'something', b = 'else';
arr1['key1-1'] = 'value1-2';
arr1['key1-2'] = 'value1-2';
for (var i = 0; i < someCond; i++) {
arr = [];
arr['key2-1'] = 'value2-1';
arr['key2-2'] = 'value2-2';
arr2.push(arr);
}
现在我需要将它全部传递给一个PHP脚本。 我将其打包成一个变量,如下所示:
var postVar = {
a: a,
b: b,
arr1: arr1,
arr2: arr2
};
我是通过使用jQuery尝试以以下方式进行发布:
1)
//Works fine for a and b, not for the arrays
$.post('ajax.php', postVar, function(response){});
并且这个:
2)
var postVar = JSON.stringify(postVar);
$.post('ajax.php', {json: postVar}, function(response){});
使用PHP文件
$req = json_decode(stripslashes($_POST['json']), true);
这种方法也不起作用。
我应该如何将我的数据格式化/结构化以便发送到PHP?
谢谢。
编辑:
情况1:
console.log(postVar);
PHP print_r($_POST)响应:
Array
(
[a] => something
[b] => else
)
如您所见,php端没有数组(对象)。
情况2:
当我添加以下内容时:
postVar = JSON.stringify(postVar); console.log(postVar);
我得到了以下内容:
{"a":"something","b":"else","arr1":[],"arr2":[[],[],[]]}
通过console.log(postVar)。
那么在这种情况下似乎就是问题所在了,对吧?
print_r($_POST)
。同时,检查控制台是否有任何提示。 - MDEVJSON.stringify()
(如果我拼写正确的话)。而在服务器端,您可以使用json_decode()
。 - starbeamrainbowlabs