nev*_*ind 3 javascript php jquery json
我不会告诉你我已经搜索并尝试了来自互联网的数十种语法.你无法判断我是否撒谎.所以...
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);
}
});
Run Code Online (Sandbox Code Playgroud)
$x = json_decode($_POST, true);
// don't worry: it doesn't get to this line below
printf("<pre>%s</pre>", print_r($x, 1));
Run Code Online (Sandbox Code Playgroud)
我试图让它尽可能简单,也许今年有一段时间我会学习正确的JSON.
最后一张图是我得到的PHP部分:
var_dump(file_get_contents('php://input'));
Run Code Online (Sandbox Code Playgroud)
不要以"不明显吗?!"开头.它是.我知道那个错误说的是什么.我只是不知道如何绕过它.我怎么抓住这个帖子?我见过$ x = json_decode($ _ POST []),但这也不起作用.我用JSONlint测试了字符串化的json并验证了它.我尝试过不同类型的数组,对象,数组属性,.AJAX,.post(),. get().我不知道选择.我已经看到了各种各样的建议,我已经尝试过了.我知道我错过了一些东西,当我找到它时,我可能会爆炸或杀死我的猫.
Thanks, as always
我修改了数据:代码中的'kkt ='+ out.现在,使用这个:
$x = json_decode($_POST['kkt'], true);
echo $x['myPostData']['address1'];
Run Code Online (Sandbox Code Playgroud)
......我可以获得价值.问题是我不知道这是如何工作的.不过,我知道这是关键.
$ _POST是所有已发布元素的数组...您只传递一个元素,但您没有为其指定名称.
尝试使用
$x = json_decode($_POST[0]);
Run Code Online (Sandbox Code Playgroud)
虽然,我会做的是:
var out = JSON.stringify({'myPostData' : JSON.stringify(jsonData) });
Run Code Online (Sandbox Code Playgroud)
然后:
$x = json_decode($_POST['myPostData']);
Run Code Online (Sandbox Code Playgroud)
如何更改原始jsonData以包含主分支:
var jsonData = { myPostData: {
address: 'address',
address1: 'address1',
address2: 'address2'
} };
Run Code Online (Sandbox Code Playgroud)
然后返回原始的stringify函数调用.