场景:
我有一个 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"];
最佳答案
您没有 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'
指的是响应数据类型,而不是请求。
关于javascript - 服务器端的 jQuery 多数据解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24451579/