我知道ajax电话和$ _POST最近已经存在很多,但是我找不到当前问题的答案。
在我的Javascript中,我有一个二维数据数组:
var postData = new Array(new Array());
postData[0]['type'] = 'grid';
postData[0]['data'] = gridData;
然后我尝试将此数组发送到PHP脚本:
function export_report_pdf(postData){
console.log(postData);
$.post('/ajax/ExportReportPDF.ajax.php',{data: JSON.stringify(postData)},
function(postData){
console.log("Successfully requested report export.");
});
}
我试图在我的PHP脚本中接收数组: 的print_r($ _ POST); 的var_dump(json_decode(的file_get_contents( “PHP://输入”)));
但我在$ _POST中获得的只是一个空的二维数组。当我在函数的开头执行console.log(postData)时,数据就在那里。
我还检查了$ _REQUEST并尝试删除JSON.stringify。
答案 0 :(得分:5)
您的内部变量类型应该是对象而不是数组,否则它将无法正确序列化:
var postData = [];
postData.push({
type: 'grid',
data: gridData
});
答案 1 :(得分:0)
你尝试过使用get而不是post。 尝试至少确保数据从客户端传递到服务器,问题仅在于POST请求。
当你尝试GET而不是检查控制台时,如果你收到任何错误。
答案 2 :(得分:0)
不要JSON.stringify
您的帖子数据。 jQuery会为你做到这一点,无论你是否自己完成了它,所以它会进行双重编码。如果你检查你的日志,你会发现,在解码数据之后,PHP只有一个POST参数,它是你的所有数据,JSON编码。
你的看起来应该是这样的:
$.post('/ajax/ExportReportPDF.ajax.php', {data: postData}, ...
答案 3 :(得分:-1)
function export_report_pdf(postData){
console.log(postData);
$.ajax(url:'/ajax/ExportReportPDF.ajax.php',type:'POST',{data: JSON.stringify(postData)},
success:function(postData){
console.log("Successfully requested report export.");
});
}
试试这个。 并确保你有最新的jquery。