PHP 处理 JSON 发送的数据

标签 php javascript json jquery

我不会告诉你我已经在互联网上搜索并尝试了数十种语法。你不知道我是不是在说谎。所以……

这是我的 html 的一部分(相关部分):

var jsonData = {
    address: 'address',
    address1: 'address1',
    address2: 'address2'
};

var out = JSON.stringify(jsonData);

$.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "joaca2.php",
    data: out,
    dataType: "html",
    success: function (response) {
        alert(response);
    }
});

这是 PHP 部分:

$x = json_decode($_POST, true);

// don't worry: it doesn't get to this line below
printf("<pre>%s</pre>", print_r($x, 1));

我尽量保持简单,也许今年某个时候我会学习正确的 JSON。


这是我得到的:

最后一张图片是当 PHP 部分有这个时我得到的:

var_dump(file_get_contents('php://input'));

不要以“这不是很明显吗?!”开头。这是。我知道那个错误是什么意思。我只是不知道如何解决它。我如何捕获那个职位?我见过 $x = json_decode($_POST[]),但这也不起作用。我已经用 JSONlint 测试了字符串化的 json 并通过了验证。我尝试过不同类型的数组、对象、数组属性、.AJAX、.post()、.get()。我没有已知的选择。我看过各种各样的建议,而且我几乎都试过了。我知道我丢失了一些东西,当我找到它时,我可能会爆炸或杀死我的猫。

一如既往的感谢


我想我成功了:

我在代码中修改了data: 'kkt=' + out。 现在,使用这个:

$x =  json_decode($_POST['kkt'], true);
echo $x['myPostData']['address1'];

...我可以得到值。问题是我不知道这到底是怎么回事。不过,我知道这是一把 key 。

最佳答案

$_POST 是所有已发布元素的数组...您只传递了一个元素,但没有为其分配名称。

尝试使用

$x = json_decode($_POST[0]);

虽然,我会做的是:

var out = JSON.stringify({'myPostData' : JSON.stringify(jsonData) });

然后:

$x = json_decode($_POST['myPostData']);

如何更改原始 jsonData 以包含主分支:

var jsonData = { myPostData: {
    address: 'address',
    address1: 'address1',
    address2: 'address2'
} };

然后返回原始的 stringify 函数调用。

关于PHP 处理 JSON 发送的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4014921/

相关文章:

php - 拉维尔 5.1 : Enable SQLite foreign key constraints

javascript - 从underscorejs中的循环数组中删除项目

javascript - Mouseout 在嵌套元素上触发,我只希望它在离开容器时触发

json - RESTful json 响应在 tomcat 上失败但在 GlassFish 中有效

php - 在 PDO 语句中将相同的 id 分配给 2 个 MySQL 表行

php - HTML 表单不发送正确的数据,PHP 分页

php - Mysql PDO 获取时的最大 LONGBLOB 数据长度

JavaScript图表——动态添加数据点

javascript - 如何强制 jquery attr() 添加带有单引号的属性

javascript - 对象和哈希之间的区别?