Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery将JSON发布到PHP_Php_Jquery_Json - Fatal编程技术网

Jquery将JSON发布到PHP

Jquery将JSON发布到PHP,php,jquery,json,Php,Jquery,Json,我试图将JSON数据从jQuery传递到PHP,以便覆盖JSON文件。我遇到的问题是,我不知道如何判断PHP文件是否正在接收我发送的json。我有点新手 我现在有这个-它没有做的把戏,我有点卡住了。任何建议都很好。我得到了警告-‘正确’但PHP没有 var testjson = [{ "name": 1, "myArray": [{ "0":"1", "2":"3" },{ "1":"2", "3":"4" }], "friends":40

我试图将JSON数据从jQuery传递到PHP,以便覆盖JSON文件。我遇到的问题是,我不知道如何判断PHP文件是否正在接收我发送的json。我有点新手

我现在有这个-它没有做的把戏,我有点卡住了。任何建议都很好。我得到了警告-‘正确’但PHP没有

var testjson = [{
  "name": 1,
  "myArray": [{ 
    "0":"1",
    "2":"3"
  },{
    "1":"2",
    "3":"4"
  }],
  "friends":40  
}];

$.ajax({
  type: "POST",
  url: "php/write.php",
  data: testjson,
  dataType: "html",
  contentType : 'application/json; charset=utf-8'
}).done(function(data, status) {
  alert('Right');
}).fail(function(data, status) {
  alert("Wrong: " + status);
});
$value=json\u decode($\u POST);
打印(价值);
使用以下代码

var testjson =[{"name":1,"myArray":[{"0":"1","2":"3"},
            {"1":"2","3":"4"}],"friends":40}];

var myString = JSON.stringify(testjson);

$.ajax({
    type: "POST",
    url: "write.php",
    data: myString,
    dataType: "html"
     }).done( function (data, status) {
    alert('Right');
})
.fail( function (data, status) {
    alert("Wrong: "+status);
});
});
在php中

$json = json_decode(file_get_contents("php://input"));
print_r($json);
明白了

我知道这非常简单。谢谢你的帮助

$value = $_POST;
print_r($value);

那么,当您运行代码时会得到什么?您需要告诉我们问题所在。请尝试将此
数据类型:“html”
更改为
数据类型:“json”
@vietnguyen09-该设置正是ajax请求所期望的。它对它发送的内容没有影响。在这种情况下,将其更改为
json
很可能只会使jQuery抛出一个“解析错误”,因为它实际上并没有返回json字符串。那么您的问题是什么呢?哦,您正在设置“contentType”。从您的请求中删除该选项,PHP将正确地获取数据。然后在PHP中,只需执行
print\r($\u POST)
(删除
json\u decode()