情境:
我有一个jQuery.ajax
调用,它将三个数组提交给服务器以保存到数据库。我需要将正在传输到服务器的组合数据对象解码为三个数组。
服务器在php
如果场景含糊不清,我要问的是,如何将$input
再次拆分为三个数组。 (这是在php
方面。)
预期结果:
将对象分解为三个单独的数组以进行处理。
当前结果:
当我开始处理第一个数组时出现内部服务器错误。
在我们开始使用代码之前注意:我还在学习,请随时欢迎任何提示/指针。
代码:
jQuery.ajax
jQuery.ajax({
url: "save_all.php",
type: "POST",
dataType: 'json',
data: { grades: JSON.stringify($scope.grades), commutators: JSON.stringify($scope.commutators), sGrades: JSON.stringify($scope.sGrades)},
success: function (data) {
console.log(data);
},
error: function (data) {
console.log(data);
}
});
save_all.php
<?php
$input = json_decode(file_get_contents("php://input"), true);
$grades = $input["grades"];
$commutators = $input["commutators"];
$sGrades = $input["sGrades"];
答案 0 :(得分:1)
您没有JSON作为整个POST数据,您有URL编码的键/值对,其值为JSON,因此您无需访问原始POST数据。您的每个JSON字符串都在标准$_POST
数组中。
PHP:
$grades = json_decode($_POST['grades']);
$commutators = json_decode($_POST['commutators']);
$sGrades = json_decode($_POST['sGrades']);
注意:ajax请求中的dataType: 'json'
是指响应数据类型,而不是请求。