javascript - 服务器端的 jQuery 多数据解码

标签 javascript php jquery ajax arrays

场景:

我有一个 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/

相关文章:

javascript - AngularJS:按 ng-repeat 中的日期排序,其中键是日期

php - 如何从显示的YouTube视频的链接中获取jQuery变量到PHP以发送到数据库?

php - 修改 php-imap 扩展以允许 oauth 身份验证

php - 从包含元素的键的值枚举多维 PHP 数组上的键的最优雅的方法是什么?

jquery - 如何使用css和jquery将 "triangle down"旋转到 "triangle up"

javascript - 如何在模态 Bootstrap 中发送参数?

javascript - 使用 CSS 的绝对大小

javascript - 使用 G+ 登录的 Chrome 扩展程序 - redirect_uri_mismatch

javascript - Crossfilter:如何从组中删除或过滤值

php - 使用 php 更改密码